JavaScript - 挂钩对所有“点击”事件的一些检查

2024-02-04

因此,我有一个附加到几个按钮的常规 onclick 事件,处理 onclick 事件的每个函数都会执行不同的操作(因此我不能为这两个事件重用相同的函数)。

element1.onclick = function() {
    if(this.classList.contains('disabled') {
        return false;
    }
    // For example make an AJAX call
};

element2.onclick = function() {
    if(this.classList.contains('disabled') {
        return false;
    }
    // For example hide a div
};

我正在为这个“禁用”类检查编写重复的代码,我想通过挂钩一些常见的 onclick 检查来消除这种情况,然后在该检查通过时触发常规 onclick 事件。

我知道下面的内容行不通,但我认为它会说明我正在尝试做的事情:

document.addEventListener('click', function() {
    // 1. Do the disabled check here
    // 2. If the check passes delegate the event to the proper element it was invoked on
    // 3. Otherwise kill the event here
});

我没有使用任何 JavaScript 库,而且我也不打算这样做,以防有人提出“只使用 jQuery”类型的答案。

编辑:必须将布尔第三个参数传递给 addEventListener 作为 true ,一切都很好。


Use 事件捕获 http://catcode.com/domcontent/events/capture.html,像这样:

document.addEventListener('click', function(event) {
    if (/* your disabled check here */) {
      // Kill the event
      event.preventDefault();
      event.stopPropagation();
    }

    // Doing nothing in this method lets the event proceed as normal
  },
  true  // Enable event capturing!
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript - 挂钩对所有“点击”事件的一些检查 的相关文章

  • Angular UI 模式的范围问题

    我无法理解 使用角度 UI 模式的范围 虽然这里不是很明显 但我已经正确设置了模块和所有内容 据我所知 但这些代码示例尤其是我发现错误的地方 index html 其中重要部分 div class btn group div
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • Firebase,只得到新的孩子[重复]

    这个问题在这里已经有答案了 var firebase new Firebase firebaseRef on child added function snapshot 这将接收所有元素 有没有办法在创建新的 Firebase 引用时不接收
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • jQuery .push 到 .get 调用中的数组给出空结果

    谁能告诉我为什么下面给我一个空字符串 当我console log contentArray in the get 回调函数它显示数据 但是当我尝试在下面的代码中执行它时 结果为空 sectionArray contentArray func
  • 为什么 window 与 Internet Explorer 中的 window.self 不同?

    关于我如何遇到这个问题有一个复杂的背景故事 但为什么self属性不完全等于窗口本身 在 Safari 和 Firefox 及其朋友中 结果如我所料 gt window window self true gt window window se
  • nodejs (libuv) 事件循环是否在一个阶段(队列)中执行所有回调,然后再进入下一阶段或以循环方式运行?

    我正在研究 Node js 中 libuv 提供的事件循环 我遇到了关注 Deepal Jayasekara 的博客 https blog insiderattack net event loop and the big picture n
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo
  • 如何正确取消引用然后删除 JavaScript 对象?

    我想知道从内存中完全取消引用 JavaScript 对象的正确方法 确保删除时不会在内存中悬空 并且垃圾收集器会删除该对象 当我看这个问题时在 JavaScript 中删除对象 https stackoverflow com questio
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 用于选择特定 div 中具有特定类的锚元素的 jQuery 选择器是什么

    我有一些这样的代码 我想选择每个 a 带有类的标签status在 div 中foo div a class status a div 你可以这样做 foo find status a
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray

随机推荐

  • 将 YAML 文件中的数字替换为随机数

    我有一个包含很多数字的文件 我希望每个数字都被替换为随机数 以便Python脚本更改YAML文件 如何用 Python 编写这个代码 h 1 X 950 00000 Y 1500 00000 Z 150 00000 h 2 X 950 00
  • 如何动态添加 XML 副本

    我正在制作一个Android应用程序 我想在线性布局中复制一些XML代码 并将其重新插入到线性布局中 以便线性布局中有两个相对布局 我想通过下面的代码动态地执行此操作
  • python 中的构造函数和初始值设定项有什么区别? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 和 Python C API new versus init https stackoverflow com questions 4859129 python and python c
  • 在 React 测试库中发现多个元素错误

    我在查询时遇到问题 我正在尝试获取两个无线电输入 其中之一没有任何问题 但另一个反应测试库引发了错误 It Found multiple elements with the role radio and name to i queries
  • EclEmma 代码覆盖率忽略 Junit 测试

    我发现在 JUnit 测试中不检查代码覆盖率的唯一方法是右键单击包 选择 Coverage as 然后选择配置 然后我可以取消单击我的测试包 我已经尝试了所有可能的组合来排除test在常规首选项 java 代码覆盖率 排除下 没有看到任何变
  • url重写index.php

    我有类似的网址 http mysite com index php p resources http mysite com index php p resources s view id 938 但我想要像这样的网址 http mysite
  • `Object obj(args...)` 和 `Object obj{args...}` 有什么区别?

    草稿本有效的C 11 http scottmeyers blogspot com 2013 01 effective c11 content and status html斯科特 迈耶斯 Scott Meyers 指出 创建对象时区分 和
  • ASP.Net MVC 控制器命名空间数组

    我注意到 MapRoute 扩展包含一个重载 它接受称为 命名空间 的 string 参数 我读了谷歌为我提供的内容 据说这是为了帮助框架在它不会找到的地方找到控制器 我做了一些尖峰 并尝试将控制器放在奇怪的位置 我把一个放在 Script
  • 在WPF中设置具有2个级别的TreeView HierarchicalDataTemplate

    我有一个在窗口的 DataContext 中表示的视图模型 public class SchoolViewModel ViewModelBase public ObservableCollection
  • Jetpack compose中的[NestedScrollView + RecyclerView]或[NestedRecyclerView(另一个回收器内的回收器)相当于什么

    I want to create the following layout in Jetpack compose 我尝试在垂直可滚动框中创建两个列表 但这是不可能的 因为我收到了此错误 java lang IllegalStateExcep
  • 如何向枚举添加扩展方法

    我有这个枚举代码 enum Duration Day Week Month 我可以为此枚举添加扩展方法吗 根据这个site http damieng com blog 2012 10 29 8 things you probably did
  • python 中的全局关键字

    我正在学习 python 并与其中的 global 关键字作斗争vscode 到目前为止 代码可以正常工作 但是vscodelinter 引发错误 我想了解原因 我尝试过使用 global 关键字 即使出现 linter 错误 代码也可以正
  • 从 Service Worker 中获取 Service Worker ID 或日期

    有谁知道是否有办法在服务人员内部获取此号码或日期 命名我的服务工作线程缓存会很方便cache 1182 or cache 20171127171448 我想在安装事件之前必须知道接收日期 不 这个东西不存在于Service Worker 规
  • Angular 2 - 将 URL 与路由匹配

    是否可以获取 URL 或路径并找出它在代码隐藏中匹配的路由 Ex Router matchRoute my route 返回有关匹配路由的信息 例如 path my route component HeroListComponent dat
  • 如何在XAML中创建类的实例?

    我想创建没有可视元素的简单实用程序类 并在 XAML 中创建它 以便我可以定义数据绑定 我尝试创建派生类DependencyObject并创建它Window Resources部分 但它不调用任何构造函数 您可以在 app xaml 中实例
  • strcpy() 中的分段错误

    我有这样的基本结构 typedef struct struck char id char mat int value char place Truck 像这样的函数创建该结构的新 实例 Truck CTruck char id char m
  • 在 Eclipse 中调试。在断点之间移动

    我正在 Eclipse 中调试 JAVA 代码 假设迭代循环内有 2 个断点 如何直接进入断点 同时在每次迭代时跳过其余代码 按 F8 这也是Resume按钮 这将带你到断点 从那里使用 F6 调试每一行 如果您想转到下一个断点 请按 F8
  • Apollo graphQL 中 useQuery 和 useLazyQuery 有什么区别?

    我正在浏览 Apollo React hooks 的文档 并看到有两个查询钩子可供使用 其中是useQuery and useLazyQuery 我正在读这一页 https www apollographql com docs react
  • 当在字符串中按下 QpushButton 时,如何在 QlineEdit 中获取文本?

    我正在尝试实现一个功能 我的代码如下 当用户单击名为 connect 的按钮时 我想在 shost 字符串中获取带有对象名 host 的 lineedit 中的文本 我怎样才能做到这一点 我尝试过但失败了 我该如何实现这个功能呢 impor
  • JavaScript - 挂钩对所有“点击”事件的一些检查

    因此 我有一个附加到几个按钮的常规 onclick 事件 处理 onclick 事件的每个函数都会执行不同的操作 因此我不能为这两个事件重用相同的函数 element1 onclick function if this classList