2010-08-09 28 views

回答

5

定義,並與.bind()附上自己的自定義事件

$('#myobject').trigger('myFancyEvent'); 

...或與其他事件處理程序混合:

$('#myobject').click(function(){ 
    doSomething(); 
    $(this).trigger('myFancyEvent'); 
}); 

你不應該很難找到關於這個主題的大量信息。 This article已經有幾年了,但仍然是一個很好的概述。

1

請參考此link

以下是上述文章的一些代碼片段。

您可以使用jQuery在您選擇的任何DOM對象上觸發自定義事件。只要觸發它使用下面的代碼:

$("#myelement").trigger('fuelified'); 

您可以使用綁定或實時功能訂閱該事件的jQuery:

$("#myelement").bind('fuelified',function(e){ ... }); 
$(".cool_elements").live('fuelified',function(e){ ... }); 

觸發時,你甚至可以通過額外的數據有關的事件和引用它的聽衆結束:

$("#myelement").trigger('fuelified',{ custom: false }); 
$("#myelement").bind('fuelified',function(e,data){ if(data.custom) ... }); 

元素觸發已經呼籲,是提供給聽者的回調函數的變量此。直接

// make myObject listen for myFancyEvent 
$('#myobject').bind('myFancyEvent', function(){ 
    alert('Yow!'); 
}); 

...然後.trigger()他們:

+0

如果你擴大你的答案可能包括一個鏈接到它的文章的一些代碼的詳細信息... +1否則,如果鏈接的變化,回答」不是個那太棒了 – davidsleeps 2010-08-09 03:35:28

1

,甚至可以把這樣的活動:

$("#element").trigger("your.event", [ 'Pamela', 'Anderson' ]); 

注意,額外的參數應該作爲數組進行傳遞。

如何監聽事件:

$("#element").bind("your.event", function(event, firstName, lastName) { 
    // Callback 
}); 

的「#element」選擇可以用文件被取代,只要該事件不是對特定DOM節點。

jQuery的文檔: Bind Trigger