JQuery自動觸發事件的方法

來源:互聯網
上載者:User

 常用類比

有時候,需要通過類比使用者操作,來達到單擊的效果。例如在使用者進入頁面後,就觸發click事件,而不需要使用者去主動單擊。

在JQuery中,可以使用trigger()方法完成類比操作。例如可以使用下面的代碼來觸發id為btn的按鈕的click事件。

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

這樣,當頁面載入完畢後,就會立刻輸出想要的效果。也可以直接簡寫click(),來達到同樣的效果:

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

觸發自訂事件

trigger()方法不僅能觸發瀏覽器支援的具有相同名稱的事件,也可以觸發自訂名稱的事件。例如為元素繫結一個“myClick”的事件,JQuery代碼如下:

1 2 3 $('#btn').bind("myClick", function(){ $('#test').append("<p>我的自訂事件.</p>"); });

想要觸發這個事件,可以使用以下代碼來實現:

$('#btn').trigger("myClick");

傳遞資料

trigger(type[,data])方法有兩個參數,第1個參數是要觸發的事件類型,第2個參數是要傳遞給事件處理函數的附加資料,以數組形式傳遞。通常可以通過傳遞一個參數給回呼函數來區別這次事件是代碼觸發的還是使用者觸發的。

下面是一個傳遞資料的例子。

1 2 3 4 5 6 7 8 $(function(){ $('#btn').bind("myClick", function(event, message1, message2){ $('#test').append( "<p>"+message1 + message2 +"</p>"); }); $('#btn').click(function(){ $(this).trigger("myClick",["我的自訂","事件"]); }).trigger("myClick",["我的自訂","事件"]); })

執行預設操作

trigger()方法觸發事件後,會執行瀏覽器預設操作。例如:

$("input").trigger("focus");

以上代碼不僅會觸發為<input>元素繫結的focus事件,也會使<input>元素本身得到焦點(這是瀏覽器的預設操作)。

如果只想觸發綁定的focus事件,而不想執行瀏覽器預設操作,可以使用jQuery中另一個類似的方法——triggerHandler()方法。

$("input").triggerHandler("focus");

該方法會觸發<input>元素上綁定的特定事件,同時取消瀏覽器對此事件的預設操作,即文字框只觸發綁定的focus事件,不會得到焦點。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。