Javascript 方法上jQuery的多个选择器?
是否可以在jQuery on方法中传递多个子选择器Javascript 方法上jQuery的多个选择器?,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,是否可以在jQuery on方法中传递多个子选择器 $("#tablename").on("click", "tr", function() { } 如果用户单击tr或复选框,则需要激发click。比如: $("#tablename").on("click", "tr input[type='checkbox']", function() { } 提前感谢…您可以使用指定多个选择器 $("#tablename").on("click", "tr, input[type='checkbox']
$("#tablename").on("click", "tr", function() {
}
如果用户单击tr或复选框,则需要激发click。比如:
$("#tablename").on("click", "tr input[type='checkbox']", function() {
}
提前感谢…您可以使用指定多个选择器
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
});
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
//use "," ---^^^---- here for multiple
});
但是在一个表中,所有的元素都可能在一个
tr
中,所以有什么区别呢您可以使用逗号将它们组合起来,右括号也会丢失。如果有空格而不是逗号,则将其视为
您可以对多个选择器使用逗号
,
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
});
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
//use "," ---^^^---- here for multiple
});
参考是的,您可以,您的代码工作正常。但问题是,如果复选框位于“tr”内,则事件将触发两次。为了防止它,您必须强制事件委派。您将事件作为参数接收,并在代码中使用e.preventDefault()。这将确保单击事件不会从复选框委托给父“tr”
$("#tablename").on("click", "tr, input[type='checkbox']", function(e) {
//e.preventDefault(); // This is wrong, plz check
e.stopPropagation(); // Hope this will help you one day
});
是的,它会工作得非常好。为什么表中的复选框除了在TR中之外其他任何地方都可以?谢谢你的帮助,我错过了选择器之间的逗号。谢谢你的帮助。