如果你看到的jQuery的有關方法的源代碼,他們做
...
self.html(
selector ?
// Create a dummy div to hold the results
jQuery("<div>")
// inject the contents of the document in, removing the scripts
// to avoid any 'Permission Denied' errors in IE
.append(res.responseText.replace(rscript, ""))
// Locate the specified elements
.find(selector) :
// If not, just inject the full result
res.responseText
);
...
所以,如果提供一個選擇(如你的情況),他們刪除腳本,以避免在IE權限被拒絕的錯誤。
你需要使用jQuery .get()
方法
像
$("#nav a").click(function() {
$.get(this.hash.substring(1), function(response){
var dummy = $('<div>').append(response).find('#content_inload');
$("#inload_container").html(dummy);
});
});
另外請注意,我已經使用了#inload_container
作爲目標元素爲你插入#content_inload
到自身模仿這個代碼,實際上是複製的。
更新
您的評論後,那麼我想,工作
$("#nav a").click(function() {
$.get(this.hash.substring(1), function(response){
$("#inload_container").empty().append(response).find('>*:not(#content_inload)').remove();
});
});
下面似乎有可能是當你創建在內存中的jQuery對象的腳本元素的問題嗎? (不能確定的原因)
在你的具體情況,上述解決方案將工作,但它不是很優雅,從它意味着它添加到DOM從ajax調用返回的一切,然後過濾出來的東西,我們不希望..
它可能會更好乾脆就只是改變你的實際視頻頁面(一個從阿賈克斯加載),做一個正常的沒有任何過濾了..
在樣品http://www.divethegap.com/update/community/videos/(點擊測試視頻)。 – 2010-11-07 14:49:13
加載頁面中的內容是什麼? – 2010-11-07 14:50:25