猿问

jQuery如何阻止子元素继承父元素事件?

$("a").click(...);
这种绑定的话,b也会响应一次事件,如何只对a元素绑定事件,而不对子元素绑定呢?即b被click之后自己并不触发回调函数,而是把事件传递给a。
我现在的做法是:直接在a上写,这样b就不会把自己作为event.target触发回调了.
---更新----
大家可能对我的意思有误解,我不是要阻止事件冒泡,恰恰相反,我是要b在接受到click事件的时候直接把事件向上传递给a,就像我在代码里面指定的那样
----再次更新---
代码是这样的
$('a').click(function(evt){
varself=$(evt.target);
self.addClass('btn-primary');
});
这时候,如果点击了b,那么b会被加上btn-primary这个class,但是我想点击了b,也只是给a添加这个class,希望处理事件的对象是a,不是b
-----完结----
感谢@冰果果,此处应该使用$(this)而不是$(evt.target),附区别http://www.cnblogs.com/12go/archive/2011/12/28/2304502.html
芜湖不芜
浏览 625回答 2
2回答

哆啦的时光机

给b添加一个事件,里面禁止事件冒泡就行了(这样也能消除父级对子级的影响)-->e.cancelBubble=true;eg:functionf1(e){alert("你点击了一个链接");//取消冒泡e.cancelBubble=true;}functionf2(e){alert("你点击了一个DIV");}ClickMe
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答