我有可点击的行,它将触发链接onclick事件,但trigger()会导致新的点击事件tr.clickable并进入循环.怎么预防这个?
<table>
<tr class="clickable">
<td>Test row</td>
<td><a href="#" onclick="alert('click');" class="trigger"></a></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
JS:
$('tr.clickable').click(function(){
var trigger = $(this).find('a.trigger');
trigger.trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
现场演示这里.
这取决于JavaScript中的事件冒泡.这是你目前有点奇怪的设置,但解决这个问题的一种方法是阻止click事件在a标签上冒泡:
$('tr.clickable a').click(function (e) {
e.stopPropagation();
});
Run Code Online (Sandbox Code Playgroud)
或者,click如果目标事件是相同的元素,则无法触发触发器:
$('tr.clickable').click(function(e){
var trigger = $(this).find('a.trigger').not(e.target);
trigger.trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
我想,最好的方法可能是第一个解决方案.
| 归档时间: |
|
| 查看次数: |
4328 次 |
| 最近记录: |