admin管理员组文章数量:1390399
looking at this event (being bind on 2 divs overlapping each other, look at the jsfiddle)
.on('contextmenu', function() { ... });
- Why do both divs being triggered?
- How can I detect this and or stop the underlaying div from triggering?
DEMO: jsfiddle
Thanks for any information!
looking at this event (being bind on 2 divs overlapping each other, look at the jsfiddle)
.on('contextmenu', function() { ... });
- Why do both divs being triggered?
- How can I detect this and or stop the underlaying div from triggering?
DEMO: jsfiddle
Thanks for any information!
Share Improve this question asked Sep 17, 2013 at 14:01 peipst9lkerpeipst9lker 6051 gold badge5 silver badges17 bronze badges 1-
@A. Wolff - you are right. Deleted the answer.
return false
hides the default behaviour as well. – davidkonrad Commented Sep 17, 2013 at 14:11
3 Answers
Reset to default 4On nested element, you need to stop event bubbling:
$('#div2').on('contextmenu', function(e) {
e.stopPropagation();
$('#log').append('<p>div2 triggered contextmenu!</p>');
});
DEMO
DEMO
$('#div1,#div2').on('contextmenu', function (e) {
e.stopPropagation();
$('#log').append('<p>' + e.target.id + ' triggered contextmenu!</p>');
});
event.target
event.stopPropagation/
You need to prevent event from propogating, try this code:
$('#div1').on('contextmenu', function(e) {
if(!e.isDefaultPrevented()){
$('#log').append('<p>div1 triggered contextmenu!</p>');
e.preventDefault();
}
});
$('#div2').on('contextmenu', function(e) {
if(!e.isDefaultPrevented()){
$('#log').append('<p>div2 triggered contextmenu!</p>');
e.preventDefault();
}
});
本文标签: javascriptjQuery event contextmenu triggers underlaying divStack Overflow
版权声明:本文标题:javascript - jQuery event contextmenu triggers underlaying div - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744712869a2621228.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论