是否可以在jQuery on方法中传递多个子选择器?
$("#tablename").on("click", "tr", function() {
}
如果用户单击tr或复选框,则需要触发单击。类似的东西:
$("#tablename").on("click", "tr input[type='checkbox']", function() {
}
提前致谢...
答案 0 :(得分:2)
您可以使用multiple selector指定多个选择器
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
});
但是在表格中,所有元素都可以在tr
中,所以差异是什么
答案 1 :(得分:1)
您可以使用multiple selector将它们与逗号结合使用,也可以使用右括号。如果您有空格而不是逗号,则将其视为descendant selector。
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
});
答案 2 :(得分:0)
您可以将逗号,
用于多个选择器
$("#tablename").on("click", "tr, input[type='checkbox']", function() {
//use "," ---^^^---- here for multiple
});
答案 3 :(得分:0)
是的,你可以,你的代码工作正常。但问题是如果复选框在'tr'内,事件将被触发两次。要防止它,您必须强制执行事件委派。您将事件作为参数接收,并在您的代码中使用e.preventDefault()。这将确保不会将click事件从checkbox复制到父'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
});