大佬教程收集整理的这篇文章主要介绍了javascript – 我们能否检测到在具有jQuery.click()的DIV中是否单击了链接?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<div class="checkmark"> <div class="Box"> </div> <div class="label">checkBox label possibly <a href="/random" target="_blank">with an anchor</a>.</div> </div>
所以在这个例子中,我使用了一组< div>标签以创建复选标记. “盒子”是我显示一个小方块的地方,当选中时,也会显示复选标记(例如红色十字).
为了使复选标记按预期工作,我使用jQuery并在主< div>上捕获鼠标点击.标签:
jQuery("checkmark").click(function(E){ e.stopPropagation(); e.preventDefault(); jQuery("Box",this).toggle("checked"); });
非常简单,效果很好(“已检查”类足以显示复选标记,因为可以使用CSS定义.)
但是,正如我们在示例中所看到的,“标签”包括锚.如果我单击锚点,我刚刚呈现的jQuery运行,但锚点什么都不做.如果我删除了stopPropagation()和preventDefault(),则会点击锚点,但也会切换复选标记.
我想知道的是:是否有一种简单的方法来检查传播是否会触发锚点,在这种情况下只是忽略“复选标记”代码中的点击?
像这样的东西:
jQuery("checkmark").click(function(E){ if(!(anchor.clicked())) // how do we do this? { e.stopPropagation(); e.preventDefault(); jQuery("Box",this).toggle("checked"); } });
附:我不知道标签上是否有锚点.因此,发现必须在click()函数中发生(除非有更好的设置,并且“if”可能以不同的方式发生).
注意:这里我显示了一个target =“blank”参数.在真正的交易中,我将实际打开一个弹出窗口,但这并没有真正有所作为.
event.target
的用途.
例如,在这种情况下:
if($(e.target).is("a")) { // It was the anchor element that was clicked }
以上是大佬教程为你收集整理的javascript – 我们能否检测到在具有jQuery.click()的DIV中是否单击了链接?全部内容,希望文章能够帮你解决javascript – 我们能否检测到在具有jQuery.click()的DIV中是否单击了链接?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。