工学1号馆

home

« | 返回首页 | »

.trigger()简单小结

By Wu Yudong on October 21, 2019

.trigger( eventType [, extraParameters ] )

描述: 根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为。

  • eventType
    类型: String
    以后包含JavaScript事件类型的字符串,比如clicksubmit
  • extraParameters
    类型: Array, PlainObject
    传递给事件处理程序的额外数组参数。 trigger( event )

.trigger(event)

类型: Event
一个jQuery.Event 对象.
当相应的事件发生时,任何通过.on()或一个快捷方法绑定的事件处理程序将被触发。但是,它们可以用.trigger()方法手动触发。调用 .trigger() 执行处理程序和用户自然的触发该事件,他们的执行顺序时相同的:
$('#foo').on('click', function() {
   alert($(this).text());
});
$('#foo').trigger('click');

当我们使用.on()方法定义一个自定义事件类型,.trigger()的第二个参数就有用了。例如,假设我们自定义事件的处理程序绑定到我们的元素而不是内置的click事件,象我们上面那样:

$('#foo').on('custom', function(event, param1, param2) {
  alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);

事件对象始终被传递到事件处理程序的第一个参数,但如果指定了额外的参数调用.trigger() 时,这些参数将被传递给处理程序。要传递多个参数,使用一个数组,如下所示。从jQuery 1.6.2开始,可以通过一个单一的参数,而不使用一个数组。

Example: 若要提交第一个表单但又不想使用 submit() 函数,请尝试如下方法:

$("form:first").trigger("submit")

Example: 若要提交第一个表单但又不想使用 submit() 函数,请尝试如下方法:

var event = jQuery.Event("submit");
$("form:first").trigger(event);
if ( event.isDefaultPrevented() ) {
// Perform an action...
}

Example: 向事件中传入任意的数据:

$("p").click( function (event, a, b) {
// when a normal click fires, a and b are undefined
// for a trigger like below a refers to "foo" and b refers to "bar"
 
} ).trigger("click", ["foo", "bar"]);

Example: 通过 event 对象,向事件中传入任意的数据:

var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);

Example: 另外一种通过 event 对象传入数据的方法:

$("body").trigger({
type:"logged",
user:"foo",
pass:"bar"
});

 

如果文章对您有帮助,欢迎点击下方按钮打赏作者

Comments

No comments yet.
To verify that you are human, please fill in "七"(required)