我有lis包含锚标签等。单击li将打开一个模态窗口,然后单击子锚标签将删除li(这是所需要的)。但是单击锚标记会触发li上的click事件并打开模式窗口。如何解决这个问题。我什至尝试了event.stopPropagation,但即使这样也没有停止模式打开。
提前感谢!
有两种避免事件传播的方法:
要删除/替换父li,请单击子锚,您可以用replaceWith。
$(function () {
$('li').click(function(e) { // if event is originated from li OK
if ($(e.target).is('li')) {
alert('open modal');
}
});
$('a').click(function(e) {
e.preventDefault();
//e.stopPropagation(); // stop propagation
$(this).parent('li').replaceWith($(this)); // remove parent li
});
});
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<li>Coffe
<a href="http://www.googlee.com">Anchor</a>
</li>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句