jQuery 事件觸發(fā)

2018-07-24 11:50 更新

事件的觸發(fā)有兩種方式,一是使用預(yù)定的“事件函數(shù)”,二是使用 trigger() 或 triggerHandler() 。

預(yù)定的“事件函數(shù)”就是類似于 .click() .focus() 這些。

<input id="btn" />

$('#btn').on('click',
  function(eventObj){
    console.log('here');
  }
);

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

trigger() 還可以直接接受一個(gè) Event 對(duì)象,比如一個(gè)死循環(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í),可以帶上參數(shù):

$('#btn').on('my',
  function(eventObj, obj){
    console.log(obj);
  }
);

$('#btn').trigger('my', {a: 123});


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)