我的问题是如何使用jQuery创建父点击,但是不要点击某些子元素(例如:复选框或超链接)?同时,我想允许自己点击子元素(例如:超链接需要工作吗?
详细说明,当单击表格中的一行时,我希望它将一个选中的类添加到该行以突出显示它。
我在每行中都有一个复选框,用于切换已检查的类。因此,我计划在单击行时使用trigger()
单击此复选框。您将在我的JSFiddle example中看到。
我遇到的问题是,如果他们单击复选框本身或行中的超链接,我不希望它触发点击。
我希望使用$('td :not(a,input)')
之类的选择器可以正常工作,但显然我不理解正确点击子元素,因为这不起作用。
如果您点击复选框
,则在默认示例中我会注意到JSFiddle example我一直在浏览网页寻找答案,但似乎没有人正在做我想要实现的目标。
答案 0 :(得分:1)
您可以替换它:
$('td :not(a,button,.custom-checkbox)').on('click', function() {
$(this).closest('tr').find('input').trigger('click');
});
对于此
$('td').on('click', function(e) {
var $target = $(e.target); //This will get the element that is actually being clicked
if (!$target.is("a,button,.custom-checkbox, [type=checkbox]")) {
//If the element being clicked doesn't belong to the group of the "unclickable" elements
//I also added checkboxes to the "unclickable" elements
$(this).closest('tr').find('input').trigger('click');
}
});