要清楚:我不問如何把現有的掛鉤到新的DOM元素。我知道live()函數和舊的livequery插件。我在問別的東西。掛鉤添加新的DOM元素與jQuery(或純JS)
我想知道的是如何掛鉤創建新的DOM元素。我問的原因是我創建了第三方用戶JS腳本,它無法控制第一方腳本。這些第一方腳本(被混淆)通過添加新的DOM元素定期更新頁面。我想在添加這些元素後執行代碼。
使用$('...').bind('ajaxSuccess',function().....)適用於一些添加,但不是全部。
要清楚:我不問如何把現有的掛鉤到新的DOM元素。我知道live()函數和舊的livequery插件。我在問別的東西。掛鉤添加新的DOM元素與jQuery(或純JS)
我想知道的是如何掛鉤創建新的DOM元素。我問的原因是我創建了第三方用戶JS腳本,它無法控制第一方腳本。這些第一方腳本(被混淆)通過添加新的DOM元素定期更新頁面。我想在添加這些元素後執行代碼。
使用$('...').bind('ajaxSuccess',function().....)適用於一些添加,但不是全部。
如果他們總是添加document.createElement方法,您可以簡單地替換它,並在那裏做你的跟蹤。
document.replacedCreateElement = document.createElement;
document.createElement = function(tagName) {
this.replacedCreateElement(tagName);
//do your tracking
}
好了,我這雙,這似乎火20秒或更少內所需的DOM更新去:
$('#someid').bind('ajaxSuccess', function() { ... });
$('#someid').ajaxSuccess(function(e, r, s) { ... });
我寧願沒有通過依賴於對網頁加載速度緩慢livequery,並且replacementCreateElement解決方案對CPU進行了衝擊。
你可以擴展嗎?是否有超過新的1.3 live()函數的livequery功能? – Pistos 2009-05-21 17:11:57
以示例更新。 – cgp 2009-05-21 17:24:53