我有这个小提琴:http : //jsfiddle.net/v9s5ezpb/1/
的HTML
<table>
<tr>
<td>test1</td>
<td>test2</td>
<td><a href="#">test3</a></td>
<td>test4</td>
<td>test5</td>
<td class="no-alert">test6</td>
</tr>
</table>
的CSS
table {
border: 1px solid #000;
}
table td {
border: 1px solid #000;
padding: 10px;
}
JS
$(document).on('click', 'table td:not(.no-alert, a)', function()
{
alert(1);
});
我希望我的代码每次单击任何一个表TD项目时都执行一个警告窗口,但那些具有特定类或锚标记的项目除外。
那怎么可能?
A<td>
不能为an,<a>
但可以具有<a>
可以使用:has()
选择器的后代。
$(document).on('click', 'table td:not(.no-alert, :has(a))', function()...
编辑:更新允许单击<td>
,<a>
但不单击<a>
目标
$(document).on('click', 'table td:not(.no-alert)', function(event){
if(!$(event.target).closest('a').length ){
// is not click on <a>` tag
}
});
用于closest()
检查目标,以防万一<a>
有任何可能喜欢<i>
或<img>
可能成为实际目标的孩子
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句