gpt4 book ai didi

javascript - 为什么在keydown回调中返回false并不会停止按钮点击事件?

转载 作者:可可西里 更新时间:2023-11-01 02:31:41 25 4
gpt4 key购买 nike

我有一个按钮和以下 javascript 例程。

$("button").keydown( function(key) {
switch(key.keyCode) {
case 32: //space
return false;
}
} );

据我了解,return false; 会停止处理按键。所以 $("button").click(); 不会被调用。对于其他 keyCodes,这按预期工作。例如,如果我截取 40,这是向下按钮,则页面不会滚动。

我在 Firefox 中注意到了这种行为。

为什么 return false; 不会停止空间上的按钮点击事件? javascript 规范对此有何规定?

最佳答案

希望这能回答您的问题:

<input type="button" value="Press" onkeydown="doOtherStuff(); return false;">

return false; 如果在 HTML 中的事件处理程序属性末尾调用,则跨浏览器成功取消事件。据我所知,这种行为在任何地方都没有正式指定。

如果您改为通过 DOM 元素上的事件处理程序属性设置事件(例如 button.onkeydown = function(evt) {...})或使用 addEventListener/attachEvent(例如 button.addEventListener("keydown", function(evt) {...}, false))然后返回 false 来自该功能的功能并不适用于所有浏览器,您需要执行我的其他答案中的 returnValuepreventDefault() 内容。 preventDefaultDOM 2 spec 中指定并且由大多数主流现代浏览器实现。 returnValue 是特定于 IE 的。

关于javascript - 为什么在keydown回调中返回false并不会停止按钮点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1639338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com