2

当点击表格内的 div 时,stoppropagation 直到点击冒泡到 tr 后才会触发。如何停止从 div 中冒泡?

http://jsfiddle.net/tcbnW/决定了我的问题

div点击了!→ tr 点击!→ 停止触发

我需要

div点击了!→ 停止触发

html代码如下

<table>
    <tr onclick="$('#INFO').append('tr clicked!<BR>');">
        <td>
            <div onclick="$('#INFO').append('div clicked!<BR>');" style="font-weight:bold;" class="STOP">test div</div>
        </td>
    </tr>
</table>
<div id="INFO" style="border:1px solid #F00;"></div>

脚本

$(document).on('click','.STOP',function(event){
       $('#INFO').append('STOP triggered<BR>');
       event.stopPropagation();
       });

使用 jQuery 1.9

4

2 回答 2

2

你不应该像 jQuery 那样混合“传统”事件处理(onfoo HTML 属性)和“现代”事件处理(使用 addEventListener 等)——必然会出现意外结果。

于 2013-03-22T16:21:27.287 回答
1

尝试从 div 中删除 onclick 事件。基本上,您有 2 个侦听器用于同一事件,一个嵌入在 onclick 中,第二个是 $(document).on

看看这个:[链接] http://jsfiddle.net/tcbnW/1/。这是一个补充

event.stopImmediatePropagation();

我认为这应该有效。

于 2013-03-22T16:09:02.127 回答