2013-09-23 31 views
7

調用的jQuery(這個)我有如何從定位標記的onclick功能

<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> 

代碼,並希望類名稱添加標籤parrent標籤裏即class="selected"府唱的jQuery。 我用這個jQuery代碼

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

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

,但此行jQuery(this).closest('li').addClass("selected");不工作...

請幫我...

+0

取決於函數中的'this'。 – Joseph

+0

'this'是窗口對象,調試它會給你答案 –

回答

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"); 
    } 

JS

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

這將工作在右鍵單擊並打開一個新標籤或按住Ctrl鍵並單擊(命令+單擊)。有沒有其他辦法可以做到這一點? – flipper

2

您需要通過這樣的功能來發送元

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> 

替代

<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

一號線:

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

,但你將不得不修改自己的活動,通過 '本';

onclick="setSelectedTestPlan(this);"