2012-10-08 44 views
1

如果您處於一個以jQuery 1.7.x開頭的環境,有任何風險運行$.getScript並加載最新版本的jQuery(1.8。 3)?

它會覆蓋更新的功能是否正確或會有碰撞

$.getScript('http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js') 
+0

它可能會搞砸了你的所有事件綁定,就像如果你有兩個版本的jQuery的正常方式(來源:我已經這樣做了) –

+0

@MikeRobinson如果你先做是關於什麼的在你的腳本? –

+0

將我的想法轉移到真正的答案 –

回答

0

它可能會搞砸你所有的事件綁定,就像如果你包括兩個版本的jQuery正常的方式。

它將是異步的,因此所有其他腳本將在getScript完成之前執行。這對你的插件來說尤其麻煩,因爲它們將自己綁定到jQuery.fn命名空間。新腳本加載後,它會重新創建jquery對象並清除對插件的引用。

你將基本上執行jquery對象的工廠重置。

這就是說,你可能把你的初始化代碼放入getScript回調,但你只能夠使用核心jQuery,而不是你的插件。

$.getScript('http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', function() { 
    console.log("Hi there"); 
}) 
+0

如果您沒有任何插件,並且您將所有邏輯放在$ .getScript的成功參數中,那麼在腳本加載後調用該參數呢? –

+0

哈哈,剛發佈並測試過它 –

+0

我想強調一下,這是一個壞主意 –

0

你可以$ .noConflict jQuery的出了門,這應該清除窗口。$的,然後使用jQuery.getScript最新的jQuery加載到窗口。$。

也許吧?這完全是一個建議,我從來沒有這樣做過。

jquery noConflict