2013-06-30 51 views
-1

我使用nodejs與socket.io,express,jade,jsdom,jquery和mongoose,我有頁面元素被加載在客戶端通過一個來自服務器的socket.io事件(其中關閉了幾頁來獲取各種東西)Jquery .live棄用,無法獲得.on與運行時間元素

它的所有工作和一切都得到加載罰款,但我需要運行時加載元素(無論是divs,列表或表[我已經嘗試了所有])與jQuery一起使用,在做了一些研究之後,我發現jQueries .live在1.9版中被刪除。所以,我想下面...

$('.vid_item').on('mouseover', function(event) { 
    if (event.type == 'mouseover') { 
     alert('Yay, mouse-over on the loaded element'); 
    } else { 
     // do something on mouseout 
    } 
}); 

作爲一個測試,我有一個「.vid_item」在玉佈局的div一同加載頁面的其餘部分,和鼠標事件完美的作品這個元素上,但在服務器返回數據並啓動socket.io事件以將項目添加到頁面後,仍然無法正常加載項目。

我錯過了什麼嗎?如果需要,可以從項目中提供其他代碼段!

提前歡呼!

回答

0

使用方法如下:

$(document.body).on('mouseover', '.vid_item', function(event) { 

jQuery的組接收到該事件,然後它代表給定爲參數的選擇匹配元素。這意味着,與使用live時相反,執行代碼時必須存在jQuery集合元素。你可以使用任何存在的元素替換document.body,當你進行綁定並且你的元素將會在其中。

+0

或者比身體更近一些的容器,如果你知道確切的話。 – hobbs

+0

太棒了!非常感謝你的答案和解釋! – turtle342