jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 我们能否检测到在具有jQuery.click()的DIV中是否单击了链接?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否有一种简单的方法来检测我想要处理点击的div中出现的链接上的点击…

所以,有一个简单的HTML代码例:

<div class="checkmark">
    <div class="Box">&nbsp;</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
}

jsFiddle here

大佬总结

以上是大佬教程为你收集整理的javascript – 我们能否检测到在具有jQuery.click()的DIV中是否单击了链接?全部内容,希望文章能够帮你解决javascript – 我们能否检测到在具有jQuery.click()的DIV中是否单击了链接?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。