jQuery 事件觸發-trigger()

jQuery/jQuery Mobile 技術文件 》

方法 trigger() 支援透過程式化的方式觸發某個特定事件,考慮以下的程式碼:

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

其中針對 id="msg" 的物件觸發其註冊的 click 事件(如果有的話)。假設有一個 id="msga" 的<div>標籤,註冊 click 事件如下:

$('#msga').click(sayHello);

完成此註冊設定,當使用者按下 msga 區塊,會執行其中指定的 sayHello 函式。現在撰寫以下的程式碼:

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

執行這一段程式碼,會觸發 msga 這個<div>標籤預先註冊的 click 事件,因此執行 sayHello 函式。來看以下的範例。


畫面上配置了兩個 <div> 標籤構成的區塊,點擊 A 會觸發 click 事件,然後顯示訊息,點擊第二個方塊 B,則會觸發 A 方塊的 click 事件並顯示相同的訊息。以下為配置的兩個方塊內容:

<div id="msga" style ="">A</div>  
<div id="msgb" style ="">B</div>

為其中的 msga 註冊 click 事件如下:

$('#msga').click(sayHello);
function sayHello(e) {          
alert('HELLO !' );        
}

當使用者按下此區塊時,會觸發 click 事件,因此執行 sayHello() ,並且顯示 HELLO 訊息。現在為另外一個<div>標籤構成的區塊註冊 click 事件如下:

$('#msgb').bind('click', tg);
function tg() {
$('#msga').trigger('click');
}

此 click 事件的回應函式 tg 調用 trigger() 觸發 msga 的 click 事件。

jQuery/jQuery Mobile 技術文件 》

沒有留言: