这是一个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)
保持可见。目前,{{1}}仅指实际点击的元素。实际上,对于“其中任何一个”,是否存在Jquery术语?
答案 0 :(得分: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);
}
});
答案 1 :(得分:0)
实际上,对于“其中任何一个”,是否存在Jquery术语?
没有。你必须自己做。使用相同的选择器。
答案 2 :(得分:0)
NO。 this
将始终引用触发事件的DOM元素。如果要检查这两个元素,则必须明确选择元素。
可以将匹配的元素存储到处理程序中的变量中,并在处理程序中使用它,这样每次触发事件时都不必查找元素。
答案 3 :(得分:0)
我不相信有。您最好的选择是调用this
上的代码及其兄弟,您可以通过引用元素ID的一部分来磨练正确的兄弟。