阅读(1176)
赞(18)
jQuery 事件触发
2017-07-21 18:04:43 更新
事件的触发有两种方式,一是使用预定的“事件函数”,二是使用 trigger() 或 triggerHandler() 。
预定的“事件函数”就是类似于 .click() .focus() 这些。
<input id="btn" /> $('#btn').on('click', function(eventObj){ console.log('here'); } ); $('#btn').click(); $('#btn').trigger('click');
trigger() 还可以直接接受一个 Event 对象,比如一个死循环:
$('#btn').on('click', function(eventObj){ console.log('here'); $(this).trigger(eventObj); } );
trigger() 与 triggerHandler() 的不同之处在于前面是触发事件,而后者是执行绑定函数。这在一些有原生行为的事件上就有明显区别了:
$('#btn').on('focus', function(eventObj){ console.log('here'); } ); //$('#btn').trigger('focus'); $('#btn').triggerHandler('focus');
trigger() 和 triggerHandler() 也用于触发自定义事件:
$('#btn').on('my', function(eventObj){ console.log('here'); } ); $('#btn').trigger('my');
trigger() 和 triggerHandler() 触发事件时,可以带上参数:
$('#btn').on('my', function(eventObj, obj){ console.log(obj); } ); $('#btn').trigger('my', {a: 123});