我有一個類似於this one的問題,但是有一個重要的區別。接受答案中提供的方法適用於「直接」綁定事件。如果處理程序分配了delegate
方法,則不會生成結果。例如:通過委託()方法測試事件處理程序是否綁定到jQuery中的元素
$("#some-element").delegate(".some-class", "click", function() {
alert("Click!");
});
經過與some-class
類元素被生成並插入到HTML,是有辦法以測試是否click
事件處理程序已經被綁定到他們?
編輯:按@尖尖的評論,我會糾正上面的問題,因爲處理程序將不會被綁定到.some-class
:
有沒有一種方法來檢查,如果一個元素爲代表,例如,通過一個jQuery對象(在這個例子中它可能是$(".some-class")
),如果點擊,會觸發處理程序?
「click」事件處理程序不*綁定到這些元素。它被綁定到「#some-element」,並且不會因爲DOM改變而改變。事件傳播到DOM(「bubble」),綁定到「#some-element」的處理程序首先確保事件目標具有類「some-class」。如果是這樣,處理程序被調用。 – Pointy 2012-02-01 14:03:57
我明白了。知道 - 是否有辦法模擬我在問題中提到的行爲?我現在將其更正爲更具體的 – Przemek 2012-02-01 14:13:00
嗯,我不認爲有一個現成的jQuery機制來檢查這一點。我想你可以寫一個,如果你知道jQuery在哪裏/如何存儲「.delegate()」的事件限定符信息。看起來,簡單地保留你自己記錄的處理器設置會更容易。 – Pointy 2012-02-01 14:15:56