Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何捕获jquery创建的事件处理程序

如何捕获jquery创建的事件处理程序
EN

Stack Overflow用户
提问于 2019-05-10 14:30:05
回答 1查看 44关注 0票数 0

我正在做一个项目,在这个项目中,jQuery中的许多遗留代码在许多不同的地方创建了onChange和onClick处理程序。当运行这个应用程序时,我看到了所有奇怪的功能,然后我花了一段时间来逆转英语。查找操作的位置(&F)。

有没有一种简单的方法来设置断点并捕获所有或某些特定的jquery.on('...函数?

更新:主要的问题是,处理程序一直在添加和删除。有时选择器并不是那么微不足道(例如,特定类下tr的第三个孩子)。我确实知道如何使用dev-tools,我在寻找一种聪明的方法来缩短逆向工程的方式,并在调用堆栈中找到处理程序创建/添加的正确位置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-10 14:44:19

您可以使用截获事件处理程序注册的函数、包含debugger语句的函数以及对事件处理程序的调用来覆盖on函数。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const oldOn = jQuery.fn.on;
jQuery.fn.extend({
  on(...args) {
    const f = args.pop();
    oldOn.call(this, ...args, function(...args) {
      debugger;
      f.call(this, ...args);
    });
  }
});

jQuery( "#box" ).on( "click", function() {
  console.log( 'clicked' );
});
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#box {
  position: relative;
  height: 100px;
  width: 100px;
  background: skyblue;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="box"></div>

注意:debugger在SO上不起作用,但在jsfiddle:https://jsfiddle.net/7kr5y2d8/2/上起作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56079703

复制
相关文章
jQuery事件处理
在jQuery中,事件处理是一项重要的功能,它使我们能够对元素的各种交互行为做出响应。jQuery提供了一系列方法来绑定、解绑和触发事件,以及操作事件对象。
堕落飞鸟
2023/05/18
8520
JQuery事件处理
Jquery事件 1、  绑定事件示例代码: <a href=”#”>绑定事件</a> <div style=”display:none;”> 什么是绑定事件?这是隐藏的内容,点击上面的内容会显示这里的内容。 </div> <script language=”javascript”> //单击显示,再次点击隐藏 /*$(function(){ $(“a”).bind(‘click’,function(){ if($(this).next().is(“:visible”)){ $(this).next().h
苦咖啡
2018/05/07
2.8K0
jQuery 事件注册、事件处理
其他事件和原生基本一致。 比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等
梨涡浅笑
2020/10/27
3.8K0
jQuery基础--事件处理
简单事件绑定>>bind事件绑定>>delegate事件绑定>>on事件绑定(推荐)
eadela
2019/09/29
2.5K0
jQuery 事件注册和事件处理
语法: element.事件(function(){}) $ ("div"). click (function(){事件处理程序 } 其他事件和原生基本-致。 比如mouseover. mouseout. blur. focus. change. keydown. keyup. resize. scroll 等
清出于兰
2020/10/26
4.3K0
jQuery 事件注册与事件处理
因为普通注册事件方法的不足,jQuery又创建了多个新的事件绑定方法bind() / live() / delegate() / on()等,其中最好用的是: on(),重点讲解如下:
星辰_大海
2020/10/09
1.7K0
jQuery 事件注册与事件处理
02-老马jQuery教程-jQuery事件处理
根据文章内容总结摘要。
老马
2017/12/27
6.5K0
02-老马jQuery教程-jQuery事件处理
02-老马jQuery教程-jQuery事件处理
1. 绑简单事件 在DOM中DOM0级绑定事件的方式是直接给事件属性赋值,但是这样有个缺点就是每次指定的事件处理程序会把之前的覆盖掉。 jQuery简单绑定事件的方式,可以让我绑定多个事件处理程序跟D
老马
2018/01/05
2.7K0
Java事件处理基础实例:处理按钮点击+捕获窗口事件+改变观感
对于图形用户界面的程序来说,事件处理是十分重要的。要想实现用户界面,必须掌握Java事件处理的基本方法。本章将讲解Java AWT事件模型的工作机制,从中可以看到如何捕捉鼠标和键盘产生的事件。另外,本章还介绍如何使用最简单的GUI组件元素,如按钮,以及如何处理由这些组件产生的基本事件。在下一章中,将阐述如何将Swing提供的多个组件组织在一起,并全面地讲述这些组件产生的事件。
愿天堂没有BUG
2022/10/28
3.7K0
Java事件处理基础实例:处理按钮点击+捕获窗口事件+改变观感
微信小程序的冒泡、非冒泡、捕获、捕获阻止、互斥事件
冒泡事件和捕获事件 冒泡事件是,进行 捕获事件是从外向内,从大到小 冒泡事件bindtap <view id="one" class="one" bindtap="_h1"> one <view id="two" class="two" bindtap="_h2"> two <view id="three" class="three" bindtap="_h3"> three </view> </view> </view> .one{ width: 200px;
友儿
2022/09/13
1.3K0
事件处理程序
IE实现了与DOM中类似的两个方法:attachEvent()和detachEvent()。
RiemannHypothesis
2022/10/31
6570
浅谈JavaScript的事件(事件处理程序)
  事件就是用户或者浏览器自身执行的某种动作。诸如click、load和mouseover,都是事件的名字。而响应某个事件的函数就叫事件处理程序。事件处理程序的名字以“on”开头,比如click事件的事件处理程序是onclick。为事件指定事件处理程序的方式有多种方式。 HTML事件处理程序 元素支持的事件,都可以使用与相应事件处理程序同名的HTML特性来指定。这个特性的值能支持一定的JavaScript代码。例如,在单击按钮的时候执行一些JavaScript代码。 <div id="aa" onclic
水击三千
2018/02/27
1.5K0
js --- 事件冒泡 事件捕获
  他们是描述事件触发时序问题的术语。事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件。相反的,事件冒泡是自下而上的去触发事件。绑定事件方法的第三个参数,就是控制事件触发顺序是否为事件捕获。true,事件捕获;false,事件冒泡。默认false,即事件冒泡。Jquery的e.stopPropagation会阻止冒泡,意思就是到我为止,我的爹和祖宗的事件就不要触发了。
小蔚
2019/09/11
12.2K0
事件冒泡与事件捕获
javascript 的事件捕获和事件冒泡之前一直没能弄明白,知道看到一个例子。 利用丢一颗石头入水的例子,就能够非常形象了,如图所示:
epoos
2022/06/06
1.7K0
事件冒泡与事件捕获
Volantis的APlayer事件捕获
Volantis中使用APlayer作为音乐播放器,如果希望在播放音乐时网页能够做出响应,例如弹窗,就需要对播放事件进行捕获。
DearXuan
2022/01/19
1K0
Volantis的APlayer事件捕获
事件流、事件捕获和事件冒泡的介绍
我们在点击页面时,事件发生时会在各元素节点按照一定的顺序进行传播,这种传播过程就称作事件流。
伯约同学
2022/02/18
1.3K0
JavaScript事件处理程序
事件就是用户或者浏览器执行的某种操作。我们常用的点击,滚动视口,鼠标滑动都是事件,为响应事件而调用的函数被称为事件处理程序,在js中事件处理程序的名字以 on 开头。
大熊G
2022/11/14
5290
jquery注册事件处理函数常用的几种方式
需要的朋友可以做一下参考,下面就以click事件为例子: 第一种方式: $(document).ready(function(){ $("#button").click(function(){ console.log("yourdomain.net"); }) }); 第二种方式(这种方法不建议使用,新版已废弃了 bind函数): $(document).ready(function(){ $('#button').bind("click", function(){ consol
IT工作者
2022/02/17
6700
事件的捕获、冒泡、委托
原声JavaScript中,事件是不可缺少的,HTML就是通过事件才能与JavaScript进行交互。其实事件流就是当你点击一个按钮的时候,这个按钮是在HTML和body上的,自然的,点击按钮的时候相当于点击了HTML和body,如果按钮放在一个div里面,那么点击按钮的时候相当于点击了div,这样就会出发一系列的事件,这就是事件流。事件具有冒泡流和捕获流,两者刚好是反着来。
wade
2020/04/24
1.1K0
事件的捕获、冒泡、委托
js 事件冒泡和事件捕获
事件冒泡由IE团队提出来的,即事件开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播。
用户1349575
2022/01/26
3.2K0

相似问题

Jquery mobile创建多个事件处理程序。

34

在事件捕获阶段绑定jQuery处理程序(而不是事件冒泡)

15

如何在jquery中动态创建事件处理程序

111

从jQuery中的不同按钮捕获ID (事件处理程序)

25

使用onClick动态创建jQuery事件处理程序

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文