我有一些jQuery腳本選擇我運行部分頁面刷新的區域內的元素。jQuery腳本不再在部分刷新的元素上運行
我使用這個CSS技巧的代碼片段刷新頁面的那一部分:
$('#refreshbutton').click(function() {
var url = "http://myUrl.com/indexTest.php?ID=" + Math.random();
setTimeout(function() {
$("#maindisplay").load(url+" #maindisplay>*","");
}, 100);
});
的問題是,#maindisplay中的元素髮生變化,因此被認爲是在DOM中的新元素。由於選擇這些元素並將函數附加到它們的腳本在domready上運行,而不是在局部刷新期間運行,因此會產生問題。
到目前爲止,在部分刷新它之後,我一直無法找到將腳本重新附加到#maindisplay中的元素的方法。
我的問題是:什麼是將腳本重新附加到頁面刷新區域的最佳方式。
謝謝你的任何建議。
感謝您的回答,作爲快速跟進問題。其中一個附加到元素的腳本是.tooltip函數,該函數在mouseenter上觸發。現在,如果我把它這樣的: $( 「機構」)的委託( 「工具」, 「了mouseenter」,函數(){$ (本).tooltip({// 事情 \t} ); }); 然後,用戶必須先將鼠標懸停在元素上,然後再次將鼠標懸停在工具提示上。如何使用.delegate或.live,而不必讓他們進行兩次鼠標移動? – BorisKourt 2010-08-26 21:31:46
我認爲這與綁定級別有關。查看.delegate中的鏈接,並考慮鼠標事件,該事件要儘可能保持爲本地,以便它在右元素上觸發,而不是在父元素上觸發。請牢記.delegate,你可以鏈接,而.live不能。你可以在這裏看到一個博客:http://brandonaaron.net/blog/2010/03/4/event-delegation-with-jquery – 2010-08-27 15:54:16
謝謝Mark,這非常有幫助。 – BorisKourt 2010-08-28 03:14:47