首页新闻找找看学习计划

请教一个前端问题,关于事件冒泡

0
悬赏园豆:20 [已解决问题] 解决于 2014-04-08 09:27

我有一个自定义的右击菜单,同时注册了隐藏事件,代码如下:

  $(window).on('contextmenu click', function (e) {                    
                    m.hide();
                });

当我单击页面时,监视m.hide()发现执行了好几次,原因我想大概是事件冒泡,现在我想m.hide()代码只执行一次,如何修改代码?

happydaily的主页 happydaily | 小虾三级 | 园豆:674
提问于:2014-04-02 10:26
< >
分享
最佳答案
0

我看你的代码不像是冒泡引起的问题啊,冒泡是从元素本身冒泡到document(有些浏览器是window),你这是window不会发生冒泡事件啊,如果发生应该是捕获事件,但是看着你的代码也没有发生捕获事件,我测试了你的代码只发生了一次,并没有发生多次,还有如果你仅仅是为了右击事件建议你只使用contextmenu事件就可以,你说的多次执行我猜是你这样操作引起的,你右击执行了一次,然后单击又执行了一次,因为你有两个事件contextmenu和click所以执行了两次。还有你这是window你可以直接$(window).click(function(){});在jquery中阻止冒泡你可以使用return false;来阻止冒泡。

收获园豆:20
小乔布斯 | 菜鸟二级 |园豆:446 | 2014-04-07 17:18
其他回答(2)
0

帮顶

【秦时明月】 | 园豆:803 (小虾三级) | 2014-04-02 10:42

谢谢~

支持(0) 反对(0) happydaily | 园豆:674 (小虾三级) | 2014-04-02 10:57
0

方法里加上e.stopPropagation(),比较老的IE好像是e.cancelBubble()

鳳梨酥 | 园豆:287 (菜鸟二级) | 2014-04-02 13:17

那是子元素这样弄的,

支持(0) 反对(0) happydaily | 园豆:674 (小虾三级) | 2014-04-02 14:28

@happydaily: 就是子元素啊-.-

支持(0) 反对(0) 鳳梨酥 | 园豆:287 (菜鸟二级) | 2014-04-02 15:13

@鳳梨酥: 再看看我的代码。

支持(0) 反对(0) happydaily | 园豆:674 (小虾三级) | 2014-04-02 15:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册