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

2024-02-12

我有一个按钮和以下 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 (e.g. button.addEventListener("keydown", function(evt) {...}, false))然后就返回false该功能并不适用于每个浏览器,您需要执行以下操作returnValue and preventDefault()我的其他答案中的东西。preventDefault指定在DOM 2 规范 http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation并被大多数主流现代浏览器所实现。returnValue是 IE 特定的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 keydown 回调中返回 false 不会停止按钮单击事件? 的相关文章

  • Flot 中轴的逗号分隔数字

    有没有办法让 Flot 使轴编号以逗号分隔 例如 用 1 000 000 代替 1000000 您可以通过使用轴的tickFormatter 属性来做到这一点 xaxis tickFormatter function val axis in
  • Leaflet.js setMaxBounds 忽略南界

    Using 传单 js http leafletjs com reference html对于开源地图项目 但我需要设置用户无法超越的特定界限 地图对象的 maxBounds 属性在北 东 西方向上按预期工作 但它让我永远向南滚动 在小提琴
  • 音频端播放新文件

    我有一个webapp https radio repjesus com当您使用 ajax jquery 单击链接时加载并播放音轨 一切正常 但当曲目结束时 曲目将设置为循环 并且这种情况可以永远持续下去 我希望播放器从数据库中自动加载随机曲
  • 如何通过ajax点击时从javascript文件执行节点(控制台)命令

    我是 Node js 新手 这是我的问题 例如 我得到了 Web 应用程序 并且从该应用程序中我有一个按钮 单击按钮后我想运行节点控制台命令 例如 node socket io So button on click function run
  • 从 PHP/Web 应用程序打印多个标签到 Dymo LabelWriter 450 Turbo

    我希望添加使用 Dymo LabelWriter 450 Turbo 打印多个标签的功能 我已经从 Dymo 网站下载了 DYMO Label v 8 SDK dmg 但看不到任何 Javascript Web 相关的 SDK 文件或文档
  • JS 是否支持使用键函数而不是比较器进行排序?

    JavaScript 的array sort https developer mozilla org en US docs Web JavaScript Reference Global Objects Array sort Syntax方
  • Chrome DevTools 脚本黑盒不起作用

    我正在尝试使用 chrome devtools 的新功能 黑盒脚本 这篇 Chrome Devtools 文章列出了脚本黑盒功能 https developer chrome com devtools docs blackboxing wh
  • Ember 未在生产环境中加载某些图像

    我有一个 Ember cli 1 13 应用程序 它在公共目录中存储了很多图像 现在 它将正确加载除特定组件中的图像之外的所有图像 该组件的调用方式如下 list item url list url name List Name price
  • Mustache javascript:如何处理布尔值

    我有一个 JavaScript 对象obj键的值可以是true or false 该值被传递给 Mustache 模板 JavaScript 对象 obj like true or false 模板 span like span 现在我希望
  • 在 JavaScript 中给变量字符串加上引号

    我有一个 JavaScript 变量 var text http example com 文本可以是多个链接 如何在变量字符串周围放置 例如 我希望字符串看起来像这样 http example com var text http examp
  • 批量删除如何工作?

    我尝试使用bulkDelete让我的机器人删除其消息 但我收到此错误 node 5724 UnhandledPromiseRejectionWarning Unhandled promise rejection rejection id 1
  • ImmutableJS:合并两个对象列表,而不重复它们

    假设我有以下内容 var allFoods Immutable List var frenchFood Immutable List type french fries price 3 type petit gateau price 40
  • 如何仅使用 Javascript 减慢平滑滚动的默认速度?

    我的目标是按回车键 然后让网站滚动到底部 我已将滚动行为设置为平滑 一切都正常工作 除了平滑滚动的默认速度太快了 我怎样才能减慢它的速度 下面是我的代码 请不要使用jquery 谢谢你 document body onkeyup funct
  • 删除鼠标悬停时的 Vue 自定义过滤器

    我想使用 VueJS 2 删除鼠标悬停时的截断过滤器 这是模板中的过滤器 div class eng word english truncate div 这是过滤器本身 filters truncate function value let
  • 添加 X 轴标题会导致 Uncaught RangeError:minimumFractionDigits value is out of range in Chart.js

    我正在尝试向 Chart js 图表的 X 轴添加标题 但是当我将标题属性放在 x 轴上时 出现错误 Uncaught RangeError minimumFractionDigits value is out of range 但它并没有
  • 当用户点击弹出窗口外部时,阻止 JQuery Mobile 关闭弹出窗口

    我正在使用 JQuery Mobile 1 2 0 alpha 1 目前 当我打开弹出窗口并点击屏幕上任意位置的外部时 弹出窗口将被关闭 我想知道是否有任何我错过的 JQuery Mobile 属性可以设置并防止在外部点击时关闭弹出窗口 模
  • 如何提交表单 onkeyup 操作

    我正在尝试保存表格onkeyup行动 我是 jQuery 新手 这可能吗 我很感激任何帮助 编辑1 保存表单意味着保存到服务器 有没有办法增加0 2秒的延迟 此代码将在 keyup 上提交您的表单 element bind keyup fu
  • C# 中的自定义按钮:如何删除悬停背景?

    我正在尝试使用 Visual Studio 2005 对我的表单 其 FormBorderStyle none 执行自定义按钮 我在链接到该按钮的 ImageList 中有我的 3 种状态按钮图像 this btnClose AutoSiz
  • Dojo 是否可以与其他 JS 框架结合?

    我们使用 Dojo 1 9 3 作为构建单页面应用程序的 JS 框架 然而 我们在 Dojo 的怪癖上花费了太多时间 因此即使是简单的任务也需要很长时间才能实现 由于缺乏适当的文档 我们经常不得不求助于阅读源代码 然后实施解决方法 我觉得如
  • SpriteKit 中的攻击按钮

    我对 Xcode 有点陌生 一直在为我的班级制作 2d 游戏 我已经有一段时间遇到按钮问题了 我刚刚找到了为什么我的跳跃按钮不起作用的解决方案 但我还有一个攻击按钮 我设置了代码 使按钮显示在屏幕上并在按下时更改其图像 但是 我不知道要放入

随机推荐

  • document.getElementsByTagName 在 vbscript 中工作吗?

    嗯 它有效 只是没有产生任何有价值的东西 elems document getElementById itemsTable getElementsByTagName TR for j 0 to ubound elems 1 stuff ne
  • 如何直接从内存中显示 webBrowser 控件中的图像?

    如何直接从内存而不是硬盘在 webBrowser 控件中显示图像 当我使用 RAM Disk 软件创建虚拟驱动器时 可以寻址图像源来加载它 如下所示 img src Z image jpg 表示 Z 是 RAM 磁盘驱动器 是否可以在 NE
  • css 中 ?v=2 是什么意思? [复制]

    这个问题在这里已经有答案了 可能的重复 将 v 1 附加到链接和脚本标记中的 CSS 和 Javascript URL 有何作用 https stackoverflow com questions 3466989 what does app
  • Admob插页式显示黑屏

    最近 我在使用 admob 显示插页式广告时遇到黑屏 这就是我正在谈论的屏幕 有时它运行良好并正确显示广告 这是我使用的代码 Class variable private InterstitialAd oInterstitialAd nul
  • 为什么 sleep 函数睡眠不一致?

    import time from time import sleep from datetime import datetime while True print datetime now strftime Y m d H M S slee
  • C# 属性覆盖Set方法

    我有一个如下所示的班级 当有人设置值时 我想覆盖 学校 国家 等 属性的设置值 我不想更改学生班级 但我需要这样做在基类中并将其用作通用方法 public class Student BaseClass public String Scho
  • 使用 rCharts 添加到图表中所有数据点的唯一链接

    我正在使用 rCharts 创建一个散点图 显示我随时间计算的评分 我有每个单独数据点 评级 的更多信息 并且希望图表上的每个数据点链接到一个独特的页面 其中包含有关该特定数据点的更多信息 例如 我希望能够将鼠标悬停在图表上的第一个数据点上
  • 如何在 Youtube Android Player API 中启用纸板模式?

    我想在我的应用程序中以纸板模式观看 Youtube 的 360 度视频 该模式将视频分成两半 供 Google 纸板中的两个镜头使用 就像在 Youtube 应用程序中一样 我正在使用适用于 Android 的 Youtube 播放器 AP
  • Android Studio渲染问题

    我在用着安卓工作室0 2 3当打开一个活动布置通常 预览应该出现在右侧 以便我可以在之间切换Text and Design模式 这应该再次显示布局的预览 但当我进入时 右侧也没有显示预览text模式也不在design模式 我刚刚收到错误re
  • JMeter在HTTP请求中使用beanshell变量

    我是这里的绝对菜鸟 我的意思是JAVA 花了几个小时寻找解决方案 现在我只想开枪自己 我想在 beanshell 断言中创建一个字符串 该字符串位于 HTTP 请求的正上方 在 beanshell 中我写道 String docid abc
  • 如何在 Mysql 中使用带有 BETWEEN 子句的字母数字字段?

    我有一个包含字段名称为 mgrs 的表 存储在 mgrs 字段中的值类似于 42SWC227821555 可能包含更多字符 并且可能包含小写字母 现在我想搜索两个经理之间的记录 那么我该怎么做呢 我可以先将 mgrs 值转换为整数 然后在
  • 从 Matlab 创建的 jar 文件返回值

    我有一个 Matlab 代码 它最终计算出索引向量 我使用库编译器将 matlab 代码编译为 java 包 jar 文件 我导出了 jar 文件以便在我的主 Java 项目中运行它 包类的名称是 Epidemic 我导入了 jar 文件
  • 无法连接到 BLE 设备

    尝试将 Android 手机连接到某种不寻常的非标准 BLE 设备 血压监测仪 数据点 我的程序可以正常连接并读取其他 BLE 设备 我的程序在 BLE 扫描中看到设备 但无法连接 相反 我立即获得 已断开连接 状态 并带有通用 GATT
  • attributeSubstringFromRange 越界问题

    我有一个 NSMutableAttributedString 我需要从中获取子字符串 我使用以下代码来获取子字符串 startIndex 和 endIndex 是两个长变量 NSMutableAttributedString current
  • 一个 git 子模块如何添加特定提交并将其记录在 .modules 文件中?

    理想情况下我想要 modules文件具有我想要使用的确切提交并且不更改它 除非我告诉它 例如使用git submodule init
  • 如何使用 FOP 在 XML-FO 中指定 2ch 缩进

    我正在尝试在 XML FO 文档中使用固定宽度字体创建两个字符的缩进 我正在使用 FOP 进行翻译 不幸的是 当我指定像这样的长度时 2ch FOP 产生以下错误消息 ERROR PropertyMaker Unknown length u
  • 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围

    我有一个包含 5 列的数据表 其中一行填充了数据 然后通过事务保存到数据库中 保存时返回错误 将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围 正如所读 这意味着我的数据表有一种类型DateTime2和我的数
  • 如何在不使用配置文件的情况下以编程方式添加 maxItemsInObjectGraph?

    我已经创建了一个像这样的 EndpointAddress EndpointAddress address new EndpointAddress http example com services OrderService svc 但我无法
  • 将 ERB 模板转换为 SLIM

    我的许多视图都是 SLIM 模板 我想添加一个vote form偏向我的应用程序 我如何将这个部分视图从 ERB 转换为 SLIM strong class result Votes strong
  • 为什么在 keydown 回调中返回 false 不会停止按钮单击事件?

    我有一个按钮和以下 javascript 例程 button keydown function key switch key keyCode case 32 space return false 据我了解 return false 将停止处