有時候,需要透過模擬使用者操作,來達到點擊的效果,例如使用者進入頁面後
就觸發click事件,而無需主動點擊。
例如以下程式碼:
<body> <a href="#" onclick="javascript:document.getElementById('d').innerHTML='x1'">点击1</a> <a href="#" onclick="javascript:document.getElementById('d').innerHTML='x2'">点击2</a> <a href="#" onclick="javascript:document.getElementById('d').innerHTML='x3'">点击3</a> </br> <span id="d"></span> </body>
實現效果為'點擊1'頁面上將顯示x1 ,'點擊2'頁面上顯示x2 …
但需要實現首次進入頁面為預設是'點擊1'
在jQuery中,可以使用trigger()方法完成模擬運算。
例如可以使用下面的程式碼來觸發A連結的click事件。
$('a').first().trigger("click");
這樣 當頁面載入完畢後,觸發第一個A連結的click事件,頁面將顯示x1
觸發自訂事件
trigger()方法不僅能觸發瀏覽器支援的具有相同名稱的事件,也可以觸發自訂名稱的事件。
例如為元素綁定一個”myEvent”的事件,jQuery程式碼如下:
$('#btn').bind("myEvent", function(){ alert("自定义事件"); });
想要觸發這個事件,可以使用以下程式碼來實現:
$('#btn').trigger("myEvent");
傳遞資料
trigger(type,[data])方法有兩個參數,
第1個是事件物件或要觸發的事件類型,
第2個參數是傳遞給事件處理函數的附加參數,以陣列形式傳遞。通常可以透過傳遞一個參數給
回調函數來區別這次事件是程式碼觸發的還是使用者觸發的。
下面是一個傳遞資料的範例。
$('#btn').bind("myEvent", function(event,message1,message2){ alert(message1 + "," + message2); }); $('#btn').trigger("myEvent", ["Hello","World!"]);
以上就是jQuery自動觸發事件trigger的使用方法,希望對大家的學習有幫助。