我有3个元素。每个对象中都有一个元素,单击该元素可找到其父元素并将其发送出去以进行处理。问题是单击事件似乎正在堆叠。例如,如果我单击元素#1,它将发送要处理的元素#1。然后,如果我单击元素#3,它将发送元素#1和元素#3。然后,如果我单击元素#2,它将发送元素#1,元素#3和元素#2。我如何只发送click事件的直接父项。
相关代码:
$('.tiles ').on('click', '.fa-pencil', function(e){
e.stopPropagation();
var tile = $(this).closest(".live-tile");
showEditDialog(tile);
});
.tiles是所有父母共享的包装器类,.live-tile是被送走的单个父母,.fa-pencil是被单击的孩子,而showEditDialog是被送走的孩子。
编辑 - -
<div class="tiles">
<!-- <div class="live-tile" >
<span id = "bar" class = "tile-title optionsBar"><i class="fa fa-2x fa-pencil"></i><i class="fa fa-2x fa-times-circle"></i></span>
<div class ="mainDiv"></div>
<span class = "tile-title imageBar"><img class = "image" src = "http://9gag.com/favicon.ico"></img></span>
</div>-->
</div>
注释中的内容(.tiles之外的所有内容)都是动态添加的,但这就是它的样子。
没关系,我发现这不是代码中关注该问题的特定要点。showEditDialog()函数被调用了两次,由于某种原因,第二个调用冒泡到父磁贴。我只是删除了对自身的调用,之后才调用了正确的调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句