2010-11-15 18 views
0

你好 我有一個使用jQuery 1.3的Drupal站點,所以很遺憾我不能使用live功能;我需要攔截動態創建項目的點擊/更改事件。 我該如何做到這一點而不使用現場?我不能升級到jQuery的提前jQuery:如何獲得動態創建的對象值沒有實時功能

+0

live()在1.3的點擊工作,但我不認爲改變工作到1.4。 – 2010-11-15 09:52:48

回答

1

在jQuery的1.3,如果你需要.live()不那麼支持(change正常在IE等),你最好的賭注事件仍the .livequery() plugin

$(".mySelector").livequery(function() { 
    $(this).change(function() { 
    //do something 
    }); 
}); 

.livequery()原理不同,它積極地尋找新的元素和綁定到他們,而不是如何.live()是一個被動的事件監聽器...所以這是一個更貴一點...但這是.live()之前是可以通過的。

+0

下載livequery並完美運行!謝謝 !! – Cris 2010-11-15 10:34:43

+0

@Cris - 歡迎光臨! – 2010-11-15 10:35:35

0

在調用動態內容的方法1.4

謝謝,使用解除綁定命令你想利用事件關閉類的類型。然後直接重新綁定。這將重新綁定所有舊元素,並連接新創建的元素。 ('。className')。unbind('click',functionName).bind('click',functionName);

0

實現您自己的「live()」函數並不困難。只需將一個事件處理程序添加到包含所有動態創建項目的容器元素即可。如果事件現在在任何這些項目上觸發,它就會觸發您的事件處理程序。在這個處理程序中,您可以使用$(event.target).is(selector)來檢查事件是否針對您的某個動態創建的項目。