jQuery 自动触发事件的坑

Posted Mipha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery 自动触发事件的坑相关的知识,希望对你有一定的参考价值。

有时候项目需求页面加载完后,需要模拟用户操作,自动点击按钮。Jquery中可以使用trigger()方法模拟事件。

$(selector).trigger(event,[param1,param2,...])

event:必须,规定指定元素上要触发的事件。可以是自定义事件和标准事件。

param1,param2,...可选。传递到事件处理程序的额外参数。
额外的参数对自定义事件特别有用。

例如,模拟点击事件可以用以下的语句

$('#btn').trigger("click");
$('#btn').click();

但是,trigger()方法有一个问题,trigger() 方法触发被选元素上指定的事件以及事件的默认行为(比如表单提交)。某些情况下会带来一些不必要的后果,然而大多数的博客都都只说了trigger怎么用,没有讲会带来什么问题。
这里就需要介绍另外一个方法triggerHandler(),triggerHandler() 不触发事件的默认行为。

trigger()与 triggerHandler() 方法相比的不同之处:
  • 它不会引起事件(比如表单提交)的默认行为
  • .trigger() 会操作 jQuery 对象匹配的所有元素,而 .triggerHandler() 只影响第一个匹配元素。
  • 由 .triggerHandler() 创建的事件不会在 DOM 树中冒泡;如果目标元素不直接处理它们,则不会发生任何事情。

以下菜鸟教程中有详细的代码参考
菜鸟教程在线编辑

以上是关于jQuery 自动触发事件的坑的主要内容,如果未能解决你的问题,请参考以下文章

jquery怎么自动触发radio的点击事件

219 jQuery事件处理: off() 解绑事件,trigger() triggerHandler() 自动触发事件

jquery怎么自动触发radio的点击事件

Jquery要怎样触发某个链接点击事件

JQuery怎么不能触发click事件了

为啥 jQuery 选择事件侦听器会触发多次?