使用jQuery的trigger方法可以觸發(fā)指定元素的指定事件,但有時(shí)候我們會(huì)發(fā)現(xiàn)這個(gè)方法并不生效,造成我們的代碼無(wú)法按照預(yù)期運(yùn)行。以下是幾種可能出錯(cuò)原因:
1. 事件名不正確
// 錯(cuò)誤的事件名 $('#myButton').trigger('clik'); // 正確的事件名 $('#myButton').trigger('click');
2. 目標(biāo)元素沒(méi)有綁定事件
$('#myButton').unbind('click'); // 先解除click事件綁定 $('#myButton').trigger('click'); // 此時(shí)觸發(fā)click事件無(wú)效 $('#myButton').click(function(){ // 重新綁定click事件 console.log('clicked!'); }); $('#myButton').trigger('click'); // 再次觸發(fā)click事件,控制臺(tái)會(huì)輸出'clicked!'
3. 目標(biāo)元素不可見(jiàn)或不在DOM樹(shù)中
// 先將目標(biāo)元素從DOM樹(shù)中刪除 $('#myButton').remove(); // 此時(shí)觸發(fā)click事件無(wú)效 $('#myButton').trigger('click'); // 將目標(biāo)元素再次添加到DOM樹(shù)中,并重試觸發(fā)click事件 $('body').append('<button id="myButton">點(diǎn)擊我</button>'); $('#myButton').click(function(){ console.log('clicked!'); }); $('#myButton').trigger('click'); // 可以正常觸發(fā)click事件