javascript – 为什么.on(‘click’,’a’)不执行e.stopPropagation();锚选择器?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么.on(‘click’,’a’)不执行e.stopPropagation();锚选择器?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1286字,纯文字阅读大概需要2分钟。
内容图文
我试图阻止传播一个div中所有锚点的事件,它附加了一个点击事件,但只有.click jquery函数触发e.stopPropagation();,.(‘click’,’a’ ,function());别.
有效的代码示例,单击锚点时,单击时不会触发div上的单击
<div class="clickedDiv" data-url="http://myurl.com">
<a class="clickedA">my link</a>
</div>
<script>
$('.clickedA').click(function(e) {e.stopPropagation();});
$('.clickedDiv').click(function(e) {
var url = $(this).data('url');
window.location.href = url;
});
</script>
代码示例不起作用,单击锚定点击,锚点本身和div
<div class="clickedDiv" data-url="http://myurl.com">
<a class="clickedA">my link</a>
</div>
<script>
$('.clickedDiv').on('click', 'a', function(e) {e.stopPropagation();});
$('.clickedDiv').click(function(e) {
var url = $(this).data('url');
window.location.href = url;
});
</script>
解决方法:
首先,你错过了
)
在2个脚本的末尾,这可能会导致问题.
其次,如果这只是拼写错误,则两个代码应该具有相同的结果,仅在单击div时触发事件,并且在单击锚点时不触发.
在这里查看这个小提琴
https://jsfiddle.net/3tg96ru1/2/
第三,更好的方法是在同一个函数中执行它并检查被点击的元素是否不是锚点然后执行如下函数:
$('.clickedDiv3').click(function(e) {
var target = e.target;
if (!$(target).is('.clickedA3')) {
alert('fffff');
} });
有关.on(‘click’)与.click()之间差异的更多详细信息
检查此链接:
Difference between .on(‘click’) vs .click()
内容总结
以上是互联网集市为您收集整理的javascript – 为什么.on(‘click’,’a’)不执行e.stopPropagation();锚选择器?全部内容,希望文章能够帮你解决javascript – 为什么.on(‘click’,’a’)不执行e.stopPropagation();锚选择器?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。