dispatchEvent 不触发 jQuery.on() 事件监听器

2023-11-27

我有以下触发自定义命名事件的代码:

elem.addEventListener('click', function (event)
{
    event.preventDefault();

    // Do some processing stuff

    var event = new Event('custom_event');
    this.dispatchEvent(event);
});

如果我尝试使用 jQuery.on() 捕获自定义事件,它会起作用,但仅当我不使用后代选择器过滤器时。

所以这有效:

$('selector').on('custom_event', function () { // works });

但这并没有:

$(document).on('custom_event', 'selector', function () { // doesn't work });

谁能解释一下为什么会这样?这是一个Fiddle显示问题。


默认情况下事件不会冒泡,因此创建事件时需要传递bubbles: true作为指示您希望事件冒泡的选项。您可以使用自定义事件要做到这一点。

您正在使用事件委托来注册第二个处理程序,该处理程序利用事件冒泡来工作。

document.querySelectorAll('.button')[0].addEventListener('click', function(e) {
  var event = new CustomEvent('custom_event', {
    bubbles: true
  });
  this.dispatchEvent(event);
});

$(document).on('custom_event', '.button', function() {
  alert('Custom event captured [selector filter]');
});

$('.button').on('custom_event', function() {
  alert('Custom event captured');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button class="button">Click Me</button>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dispatchEvent 不触发 jQuery.on() 事件监听器 的相关文章

  • 为什么我的箭头函数有原型属性?

    正如文档中提到的https developer mozilla org en docs Web JavaScript Reference Functions Arrow functions https developer mozilla o
  • 粉碎一个元素,向随机方向发送碎片

    我试图 粉碎 一个元素 例如 一个图像 并将其碎片朝随机方向飞行 当碎片到达目的地时 即x距离 以像素为单位 它们变成原始图像的较小版本 jQuery UI 的explode http api jqueryui com explode ef
  • 在 jQuery 中获取 Json 数据

    没有一个清晰的示例解释如何尽可能简单地拉取 json 数据 我有一个有效的 json 我需要使用 jQuery 检索它 我的 json 输出如下 title blog entries items title Can Members of t
  • 如何更改点击事件上的引导插入符指向方向

    我正在使用 2 3 2 引导程序 因为当我单击菜单按钮时 我可以更改插入符号图标的位置 我需要当我单击图标插入符号向上时 当您单击另一个项目时 插入符号返回到初始状态 这怎么可能 导航代码 div div class container d
  • 将其作为参数传递给 addEventListener()

    我想添加change一组复选框的事件 我如何访问this在我的事件函数中 这样当我执行事件时我可以访问复选框的值 这是我当前的代码 var checkboxes document getElementsByClassName cb Arra
  • 使用 jQuery 1.4 跨平台、跨浏览器播放声音的方式?

    我试图让 jQuery 在元素悬停 单击时播放声音 就像一个没有flash的flash网站 我已经尝试过推荐的方法跨平台 跨浏览器的方式从 Javascript 播放声音 https stackoverflow com questions
  • 我什么时候应该使用内联和外部 Javascript?

    我想知道什么时候应该包含外部脚本或将它们与 html 代码内联编写 就性能和易于维护而言 这方面的一般做法是什么 真实场景 我有几个需要客户端表单验证的 html 页面 为此 我使用了一个包含在所有这些页面上的 jQuery 插件 但问题是
  • Facebook 登录无法在移动浏览器中使用

    我使用 react facebook login 在我的网站中实现了 facebook 登录module https github com keppelen react facebook login 我在 ComponentDidMount
  • jQuery 字符和字数统计

    这是一个非常简单的问题 jQuery 是否可以获取一个元素 计算该元素 不是文本区域或输入 中的单词数和字符数 并将其显示在 HTML 文档上 我能想到的唯一可行的代码是 document write content text length
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 使用 jquery 删除空

    我有像上面这样的代码 ul li a href Default aspx Menu a ul li a href Content aspx ID 153 SubMenu a li ul li ul
  • 哪些控件触发了 Page.IsValid = false?

    两件事情 是否可以通过 Jquery 设置 Page IsValid Is Valid 属性 以便我不必使用 aspx 验证器 据我了解 IsValid 属性是只读的 当验证器进入时 是否可以通过 Jquery 当然 找出哪些控件导致验证失
  • 如何使用javascript从特定标签获取HTML文档中的所有textNode?

    如何在不使用xpath或treewalker的情况下从单个数组中的一组特定标签中获取所有textNodes blockquote em h4 h6 p IE不允许您使用xpath和treewalker 请帮助我 如果脚本仅适用于 IE 那就
  • 根据数据更改图例颜色高图表

    我可以根据数据动态设置列的颜色 但无法弄清楚如何更改图例中的颜色 请注意 jsfiddle 最新的条形图是绿色的 但图例是蓝色的 有没有办法改变列颜色也会改变图例颜色 这是我用于列颜色的代码 jsfiddle http jsfiddle n
  • 'DOMException:使用'option:selected'选择器时无法在'Element'上执行'querySelectorAll'

    我正在运行一个页面 该页面在以下行中引发错误 var label select find option selected html select find option first html 为了完整起见 这里是完整的 jQuery 函数
  • 调用不带括号的 javascript 函数

    以下 renderChat 函数用于将消息和图像渲染到聊天板上 该函数内部还有另一个函数 var onComplete function 它完成创建列表元素并将其附加到聊天列表的所有工作 onComplete函数之后就只有这三行代码 img
  • Bootstrap 3 - 模态背景不会根据模态对话框的高度调整大小?

    我将一个表单放入模式中 并尝试在用户触发单选按钮时显示表单的一些隐藏字段 显示隐藏字段后 模态自动重新缩放的高度 但模态背景的高度不能用作模态对话框 我该如何解决它 div class modal fade div class modal
  • JavaScript 按名称获取当前作用域中的变量

    所以我有一个变量和该变量名称的字符串 function Factory string var foo bar console log foo is equal to this string 如果变量所在的对象是当前对象 如何从字符串文字中获
  • 加载 angularjs 路由后运行 javascript 代码

    我需要在 angularjs 加载路线后显示警报 显示警报的代码位于 angularjs 异步加载的视图中 视图加载后 我希望它能够运行 但它没有 我知道我可以广播并告诉它稍后运行等 但我需要一个更通用的解决方案 假设您正在谈论基于以下内容
  • 保留对 React 状态变量的“引用”

    据我所知 Javascript 中没有指针 我有以下问题 但我想知道是否有一个解决方案让我无法解决 解决方案可能是普通的 Javascript 或者像 Context API 这样的 React js 钩子 useContext 或者更多

随机推荐

  • 如何对Spark Structured Streaming进行单元测试?

    我想了解 Spark 结构化流的单元测试方面 我的场景是 我从 Kafka 获取数据 并使用 Spark 结构化流处理并在数据之上应用一些转换来使用它 我不确定如何使用 Scala 和 Spark 对此进行测试 有人可以告诉我如何使用 Sc
  • 如何将 Monad 实例定义为具有多个值的类型?

    我所说的多个值的意思是这样的 data Foo a Bar a Baz a a 我想不出一个明确的方法来定义 gt gt for Baz instance Monad Foo where Bar x gt gt f f x Great th
  • 如何在单击第 3 方按钮时设置断点?

    我正在尝试调试第 3 方小部件 1按钮准确地说 具体来说 我想在 Chrome 中设置一个断点 当单击小部件中的按钮时该断点会停止 我想打破处理的第 3 方代码click事件 是否有 Chrome 扩展 或其他我没有想到的东西 来帮助我在代
  • 为什么 System.Convert 有接受 DateTime 的 ToDateTime?

    Summary Returns the specified System DateTime object no actual conversion is performed Parameters value A date and time
  • Codeigniter 2.1 - 插入批次后返回 ids

    如何返回 insert bunch 之后的所有 ID 功能 public function insert slike id slike folder polje tabela slike explode slike i 1 data arr
  • Mathematica 中的错误:正则表达式应用于很长的字符串

    在下面的代码中 如果字符串 s 附加到大约 10 或 20 000 个字符 Mathematica 内核段错误 s This is the first line MAGIC STRING Everything after this line
  • 使用内联汇编在 C 中添加值

    我试图掌握 C 中内联汇编 ATT 汇编 的基础知识 所以我通过添加 2 个变量进行练习 好的 这按预期工作 这src变量被复制到dst变量 然后是dst变量加 5 的值src and dst分别为1和6 int src 1 int dst
  • IOS 5 如何更改导航栏中后退按钮的颜色?

    I want to change the color of back button of a navigation bar to make it look like this Set the backBarButtonItem s tint
  • Javascript 中与 64 位整数的按位 AND

    我正在寻找一种在 JavaScript 中对 64 位整数执行按位 AND 的方法 JavaScript 会将其所有双精度值转换为带符号的 32 位整数以执行按位运算 详细信息在这里 Javascript 将所有数字表示为 64 位双精度
  • 在 QMake 中设置 RPATH 顺序

    我有一个 Linux Qt 程序 我希望它优先使用可执行文件目录中的 动态 Qt 库 如果存在 否则使用系统的 Qt 库 RPATH 来救援 我将此行添加到qmake的 pro 文件 QMAKE LFLAGS Wl rpath ORIGIN
  • Visual Studio 2010 无法识别 .cshtml 文件

    我最近重新安装了 Visual Studio 2010 因为这样做我不知道如何让它再次识别 cshtml 文件 我尝试安装 MVC 3 但它说它已经安装了 基本上当我打开 cshtml 文件时Visual Studio 它们没有代码高亮或智
  • DRF:如何将 django-rest-framework-jwt 集成到 Djoser

    我计划构建一个应用程序Django 休息框架 我更感兴趣的是使用Django Rest Framework JWT认证机制比Session or Token认证机制 但所有其他包都喜欢Django Rest Auth and Djoser
  • 如何获取URI的最后一个路径段

    我有一个字符串作为输入URI 如何获得最后一个路径段 在我的例子中是一个 id 这是我输入的网址 String uri http base path some segment id 我必须获得我尝试过的 id String strId ht
  • 如何在iOS中获取CSRF令牌?

    因此 我尝试将表单数据发布到我同事的网站 以便从我的 iPhone 应用程序登录 简单的用户名和密码 但是 我似乎需要 CSRF 令牌才能发帖 我对此做了很多研究 并且从中我可以从csrftoken cookie 我在这里读到 https
  • 在 Windows/Apache 上设置 Python?

    我想要一个简单的 Python hello world 网页脚本在 Windows Vista Apache 上运行 但遇到了不同的障碍 我用的是WAMP 我已经安装了mod python并且模块显示 但我不太确定我应该做什么 例如http
  • 反应式表单数组 - 推送新元素时避免验证错误

    我有一个由单个表单数组组成的表单组 ngOnInit this deviceDetailsFormGroup this formBuilder group deviceDetails this formBuilder array this
  • 如何禁用纸浆的计算日志

    我在 python 中使用 pulp 和 GUROBI 来解决一些优化问题 例如 GUROBI的计算日志是 Optimize a model with 12 rows 25 columns and 39 nonzeros Coefficie
  • 从地址字符串中提取邮政编码

    我有一些完整的地址 例如 addr1 5285 KEYES DR KALAMAZOO MI 49004 2613 addr2 PO BOX 35 COLFAX LA 71417 35 addr3 64938 MAGNOLIA LN APT
  • 如何避免 wkhtmltopdf 表格行内分页

    我正在从 html 页面生成 pdf 报告一张桌子 我在用wkhtml转pdf为目的 当pdf生成时在 tr 标记中的任意位置中断 我想避免它 2015 年 9 月 17 日更新 检查您正在使用的版本 据说 wkhtmltopdf 0 12
  • dispatchEvent 不触发 jQuery.on() 事件监听器

    我有以下触发自定义命名事件的代码 elem addEventListener click function event event preventDefault Do some processing stuff var event new