【问题标题】:Trigger Real Event with jQuery使用 jQuery 触发真实事件
【发布时间】:2012-10-02 20:55:42
【问题描述】:

似乎 jQuery 的 trigger() 只运行与 jQuery 绑定的事件处理程序。我有一些使用本机浏览器事件绑定的模块。使用来自 https://stackoverflow.com/a/2676527 的代码对我有用,但我想知道 jQuery 中是否有内置的东西可以做到这一点?

来自 cmets 的更新: 显然它适用于按钮上的点击事件。但不适用于选择框上的更改事件:http://jsfiddle.net/qxpXV/2/

记录在案:破解其他库以使用 jQuery 进行绑定确实使trigger() 工作,但我真的不想这样做。

【问题讨论】:

  • @singpolyma 原生浏览器事件绑定是什么意思? .addEventListener()?我能够调用这样的处理程序:jsfiddle.net/mnrUt 嗯,即使我通过onevent HTML 属性指定代码,jQuery 的 .trigger() 仍然能够运行该代码:jsfiddle.net/mnrUt/1
  • @adeneo 查看我上面的两个演示。
  • @ŠimeVidas - 似乎它确实有效,总是认为它不起作用,因为文档说它用于与 jQuery 绑定的事件,并且从未真正有时间测试它!
  • @ŠimeVidas 有趣的是它适用于点击。但不适用于选择框的更改:jsfiddle.net/qxpXV/2
  • @singpolyma 在 Chrome 上为我工作。可能是特定于浏览器的。

标签: javascript jquery javascript-events


【解决方案1】:

您可以通过直接在 DOM 元素上手动触发/调度事件(取决于浏览器,fireEvent/dispatchEvent)来做到这一点。代码from this answer 将处理事件分派,您只需要针对 DOM 元素而不是 jQuery 包装器执行它。

【讨论】:

  • 接受这个,因为它似乎是唯一的方法。 jQuery 不支持这个,据我所知 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2011-06-05
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多