$("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
2 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
给b添加一个事件,里面禁止事件冒泡就行了(这样也能消除父级对子级的影响)-->e.cancelBubble=true;eg: functionf1(e){alert("你点击了一个链接");//取消冒泡e.cancelBubble=true;}functionf2(e){alert("你点击了一个DIV");}ClickMe