2012-01-21 14 views
0

這裏是一個jQuery函數:參照「這些」 jQuery的

$("label[for='ch_c'], label[for='ch_ad']").click(function(){ 
    if($(this).hasClass('active')){ 
     $('#box').fadeIn(300); 
    } else { 
     $('#box').fadeOut(300); 
    } 
}); 

我需要(this)來指兩個元素,所以#box保持可見,如果其中一方有active類。目前,(this)僅指實際點擊的元素。實際上,有沒有一個Jquery這個'這些'的術語?

+0

請問您可以發佈一些HTML代碼?我需要看到你的DOM結構。 – buschtoens

回答

2

click事件處理程序(以及其他任何事件處理程序)中,this將始終引用接收該事件的元素。您可以簡單地重複使用與您的選擇器相匹配的元素:

var elems = $("label[for='ch_c'], label[for='ch_ad']"); 
elems.click(function(){ //Bind click event handler to matched elements 
    if(elems.hasClass('active')){ //If any elements have active class 
     $('#box').fadeIn(300); 
    } else { 
     $('#box').fadeOut(300); 
    } 
}); 
+0

這就是我最終做的。謝謝詹姆斯。 – sscirrus

+0

沒問題,很高興我可以幫助:) –

0

是存在的,實際上,對於「任一」一個jQuery項?

號你必須自己做。使用相同的選擇器。

0

NO。 this將始終引用觸發事件的DOM元素。如果你想檢查兩個元素,你將不得不明確地選擇元素。

可能是可以匹配的元素存儲到了處理一個變量,並使用它的處理器中這樣你就不必找觸發事件,每次的元素。

0

我不相信有。您最好的選擇是調用this及其兄弟的代碼,您可以通過引用該元素的部分ID來磨合正確的兄弟姐妹。