2013-09-23 32 views
7

dan jQuery (this) çağırmak için nasılbağlantı etiketi onclick fonksiyonu

<ul> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Test</a></li> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Test fdgfdgfdgfdgfdgfdgfdgfdg fdg</a></li> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Plan</a></li> 
      <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">Test</a></li> 
     </ul> 

kodu bulunan ve yani class="selected" bu jquery sing bir etiket parrent li etiketi için sınıf adını eklemek istiyor. Böyle işlevi yoluyla eleman göndermek gerekir

+0

Bu işlevin içinde ne olduğuna bağlı. – Joseph

+0

'this' bu pencerenin bir hata nesnesidir, –

cevap

18

HTML

<li><a onclick="setSelectedTestPlan(this);" href="javascript:void(0);">New Test</a></li> 

js

function setSelectedTestPlan(el) {  
     jQuery("#tree ul li").removeClass("selected"); 
     jQuery(el).closest('li').addClass("selected"); 
    } 

veya

js

function setSelectedTestPlan(el) { 
    jQuery(el).closest('li').addClass("selected").siblings().removeClass("selected"); 
} 
+0

cevabını verir ve bu işlem sağ tıklayıp yeni bir sekme açar veya Ctrl + tıklayın (komut + tıklama). Bunu başarmanın başka bir yolu var mı? – flipper

2

... bana yardım edin ...

bu jquery kodu

function setSelectedTestPlan() { 
     jQuery("#tree ul li").each(function() { 
      jQuery(this).removeClass("selected"); 
     }); 

     jQuery(this).closest('li').addClass("selected"); 
    } 

kullanılan Fakat bu çizgi jQuery(this).closest('li').addClass("selected"); çalışmıyor

HTML

onclick="setSelectedTestPlan(this);" 

js

function setSelectedTestPlan(ele) {  
     jQuery("#tree ul li").each(function() { 
      jQuery(this).removeClass("selected"); 
     }); 

     jQuery(ele).closest('li').addClass("selected"); 
    } 
1
function setSelectedTestPlan(e) { 
    jQuery("#tree ul li").each(function() { 
     jQuery(this).removeClass("selected"); 
    }); 

    jQuery(e).closest('li').addClass("selected"); 
} 

<li><a onclick="setSelectedTestPlan(this);" href="javascript:void(0);">New Test</a></li> 

alternatif

<ul> 
     <li><a class="mylink" href="javascript:void(0);">New Test</a></li> 
     <li><a class="mylink" href="javascript:void(0);">New Test fdgfdgfdgfdgfdgfdgfdgfdg fdg</a></li> 
     <li><a class="mylink" href="javascript:void(0);">New Plan</a></li> 
     <li><a class="mylink" href="javascript:void(0);">Test</a></li> 
    </ul 


$(function(){ 
$(".mylink").click(function(e){ 
    $(".mylink").parents("li").removeClass("selected"); 
    $(this).parents("li").addClass("selected"); 
    e.preventDefault(); 
    }); 
}); 
2

Bir satır:

jQuery(this).closest('li').addClass("selected").siblings().removeClass("selected"); 

ancak 'bu' geçmesine etkinliğinizi değiştirme zorunda kalacak;

onclick="setSelectedTestPlan(this);"