事件的觸發(fā)有兩種方式,一是使用預定的“事件函數(shù)”,二是使用 trigger() 或 triggerHandler() 。
預定的“事件函數(shù)”就是類似于 .click() .focus() 這些。
<input id="btn" /> $('#btn').on('click', function(eventObj){ console.log('here'); } ); $('#btn').click(); $('#btn').trigger('click');
trigger() 還可以直接接受一個 Event 對象,比如一個死循環(huán):
$('#btn').on('click', function(eventObj){ console.log('here'); $(this).trigger(eventObj); } );
trigger() 與 triggerHandler() 的不同之處在于前面是觸發(fā)事件,而后者是執(zhí)行綁定函數(shù)。這在一些有原生行為的事件上就有明顯區(qū)別了:
$('#btn').on('focus', function(eventObj){ console.log('here'); } ); //$('#btn').trigger('focus'); $('#btn').triggerHandler('focus');
trigger() 和 triggerHandler() 也用于觸發(fā)自定義事件:
$('#btn').on('my', function(eventObj){ console.log('here'); } ); $('#btn').trigger('my');
trigger() 和 triggerHandler() 觸發(fā)事件時,可以帶上參數(shù):
$('#btn').on('my', function(eventObj, obj){ console.log(obj); } ); $('#btn').trigger('my', {a: 123});
更多建議: