Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript keydown上的event.preventDefault()不是';行不通_Javascript_Jquery - Fatal编程技术网

Javascript keydown上的event.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

试图捕获引导选项卡面板菜单上的按键,但忽略选项卡的按键处理程序上的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 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点的民意测验中,你可以直接投下接近票数的票。)