Javascript keydown上的event.preventDefault()不是';行不通
试图捕获引导选项卡面板菜单上的按键,但忽略选项卡的按键处理程序上的preventDefault()会弹出提示Javascript keydown上的event.preventDefault()不是';行不通,javascript,jquery,Javascript,Jquery,试图捕获引导选项卡面板菜单上的按键,但忽略选项卡的按键处理程序上的preventDefault()会弹出提示 document.onkeydown = function(e) { console.log("document catched the keydown event"); }; $('body > div > ul > li > a').on("keydown",function (e) { console.log("handled by the ch
document.onkeydown = function(e) {
console.log("document catched the keydown event");
};
$('body > div > ul > li > a').on("keydown",function (e) {
console.log("handled by the child - stop bubbling please");
e.preventDefault();
});
例如:
这里我遗漏了什么?除了
e.preventDefault
之外,您还必须使用e.stopPropagation()
来防止事件发生。在您的情况下,您还可以从事件处理程序返回false
,该事件处理程序执行以下两项操作:
$('body > div > ul > li > a').on("keydown",function (e) {
console.log("handled by the child - stop bubbling please");
return false;
});
尝试
e.stopPropagation()
e.stopPropagation()
防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知
$('body > div > ul > li > a').on("keydown",function (e) {
console.log("handled by the child - stop bubbling please");
e.preventDefault();
e.stopPropagation();
});
差异?
e.StopRopagation()?您需要使用前面回答的
StopRepagation
,这显然不是重复。我们的同伴问的是为什么他使用的函数不起作用,而不是它与另一个函数有何不同。当你确定一个问题是重复的,而不是回答它时,发表评论说它是重复的,这样人们就可以正确地关闭它。(当然,在大约1400点的民意测验中,你可以直接投下接近票数的票。)