高分!!!!JS,JQ冒泡事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分!!!!JS,JQ冒泡事件相关的知识,希望对你有一定的参考价值。

假设,我现在做了一个<div>,这个div里面我设置了一个onClink事件,问题是,我的div里面有一个<a>标签,a标签有一张图片,图片是有一个链接,让你点击以后打开新窗口去到另外一个页面的.

现在的问题是,我想点击a标签的图片时候,打开新窗口去到另外一个页面,而在这张图片位置上不触发,div的onClink事件.

不要在div上绑定点击事件,在a连接上绑定点击事件,阻止事件冒泡就行了啊。
$("a").bind("click",function(event)

event.stopPropagation();
)追问

直接在a标签上面调用?div不做任何处理吗?div的onclick事件不能去掉哦.

追答

你是点击div的时候处超链接外有另外的处理流程??
那你就绑定在div上,看其触发事件的原始元素是哪个,按触发事件的原始元素来分别处理
$("div").bind("click",function(event)
var element = event.target;
if(element.tagName == 'DIV')

else if(element.tagName == 'A')

)

参考技术A 楼上两位代码冗余了,需要两次绑定

这样做,一次绑定就OK了:

$("#div").click(function(e)
if($(e.target).is("IMG")) //or e.target.nodeName=="IMG"
window.open(url)
func("div")
);追问

你这个方法现在哪里呢?a标签那里吗?还有if($(e.target).is("IMG")) //or e.target.nodeName=="IMG"
这句是怎么理解的?

追答

我的意思是,
click事件是由不同DOM触发,只要判断是谁触发的,就可以分而治之,懂?

参考技术B 给a标签绑定一个事件,阻止其时间进行冒泡到父级的div上,就不会触发父级的onClick事件了
代码,同楼上追问

直接在a标签上面调用?div不做任何处理吗?div的onclick事件不能去掉哦.

追答

是的,直接给a加事件就好,不用去掉div上的onClick事件

以上是关于高分!!!!JS,JQ冒泡事件的主要内容,如果未能解决你的问题,请参考以下文章

在jq中看到”阻止冒泡“,请问阻止冒泡啥意思?

jq事件冒泡问题

jq事件冒泡的区别

前端阻止冒泡事件将项目打包并安装在当前环境中请求路径参数传递方式JQ触发动态添加元素position绝对定位和相对定位js中动态添加idCorpus项目部署上线

事件冒泡的应用——jq on的实现

jq+mui 阻止事件冒泡