我的問題是,當我使用jquery將頁面加載到div中時,腳本標記沒有按照我希望的方式激活(雖然它們的確從我所知道的方式激活)。腳本標記沒有激活jquery加載
我見過幾種不同的方法(如$ .getScript();)來加載腳本。然而,無論我嘗試什麼,我都無法得到像實際上將代碼放在那裏而不是加載它的效果。
因此,我猜我的問題是我應該如何設置在代碼真正在那裏時加載它的效果大致相同(如通常以相同的順序激活)。
我的問題是,當我使用jquery將頁面加載到div中時,腳本標記沒有按照我希望的方式激活(雖然它們的確從我所知道的方式激活)。腳本標記沒有激活jquery加載
我見過幾種不同的方法(如$ .getScript();)來加載腳本。然而,無論我嘗試什麼,我都無法得到像實際上將代碼放在那裏而不是加載它的效果。
因此,我猜我的問題是我應該如何設置在代碼真正在那裏時加載它的效果大致相同(如通常以相同的順序激活)。
我懷疑你會喜歡我的答案,因爲它的EVIL!但這是我知道這樣做的唯一途徑。
您的腳本標記未激活的原因是沒有要附加到的事件。因此腳本無法激活自己。因此,這裏是讓他們運行的最簡單的方法:
//find script tage in page html (your ajax call will return html, represented here as 'newPage'
var scriptAsStr = newPage.split('<script>')[1].split('</script>')[0];
// run that script with eval
eval(scriptAsStr);
如果你問如何有插入像click
事件一個div響應新的元素,你應該使用下面的主標題腳本:
$(document).on('click', "#mynewdiv", function() {----});
這將目標的div與ID一旦它已經在文檔內創建,該文檔在頁面加載時已經存在。
如果你有一個已經存在的包裝元素,並要針對特定於該元素的所有插入的元素,你可以更精確的搭配:
$("#wrapper").on('click', "*", function() {----});
我在尋找如何加載到一個div一個html文件,使外部腳本元素激活,因爲這將(或至少相似的),當我實際上在那裏放置代碼。但是,我從來不知道你可以做.on,我一直這樣做.live,總是學到新的東西:) – Fewfre
看起來很有前途,但無論我把它放在哪裏,我都會得到'')[0]; eval(scriptAsStr) ;」打印出來,不知道爲什麼。此外,即使與HTML,不jQuery的。加載帶腳本標籤?雖然我可能會誤解我應該把它放在哪裏。 – Fewfre
@Kyomu你是正確的。加載剝離腳本標籤,我忘了這一點。如果你使用'$ .get'你應該沒問題。我從我自己的項目中抽取了這些代碼,因此您可能需要對其進行修改以獲得所需內容,但是您明白了。您需要將腳本標記的內容作爲字符串使用,然後您可以「評估」。 – Fresheyeball
出於某種原因不喜歡/。所以看劇本,我相信我發現了這個問題。該腳本正在嘗試document.write,並且我認爲以不同的順序激活它比它想要的更糟糕。 – Fewfre