爲什麼一些javascripts會與其他一些javascript衝突?我的意思是我一直在使用JavaScript代碼圖片庫,然後試圖獲取jQuery文本水印。爲什麼在使用jQuery之後,畫廊完全消失了?我在兩個腳本中沒有使用常見的ID。有什麼理由呢?JavaScript衝突
3
A
回答
3
由於馬蒂亞斯已經正確地指出,最有可能的問題是,你的其他庫也使用$
符號 - 當你加入jQuery的頁面它改寫舊$
變量有自己的$
...和你第一個JavaScript庫停止工作。解決方法是調用jQuery.noConflict()將$
變量恢復到第一個庫。您仍然可以使用jQuery插件 - 您只需更新使用$
的示例腳本即可使用jQuery
。因此$("#my_content").css({color: "red"});
將成爲jQuery("#my_content").css({color: "red"});
或者,你可以用這種方式jQuery對象賦給另一個變量對象:
$jq=jQuery.noConflict(); //From now on jQuery can be called with the $jq function
,或者你可以在封閉中使用它:
(function($) {
// $ in here will map to jQuery
//outside of this code $ will map to your other library's $
})(jQuery.noConflict());
1
1
有時,人們可以在其包裝JavaScript中使用全局變量。如果你有兩個使用相同全局變量的包,顯然會出現問題。要解決它,你可以嘗試的是圍繞每個不同的包的代碼創建一個閉包。如果沒有看到代碼,我不是100%它會工作,但這裏有一個例子:
// gallery.js
var textTitle = "Image gallery";
function getGalleryTitle() { return textTitle; }
//////////////
// watermark.js
var textTitle = "Watermark";
alert(getGalleryTitle()); // "Watermark" :(
現在與關閉,使用匿名函數創建:
(function() {
var textTitle = "Image gallery";
function getGalleryTitle() {
return textTitle; // this will always be "Image gallery"
}
})();
(function() {
var textTitle = "Watermark"; // won't conflict with any other code.
})();
這裏的缺點是,你不能再在全局訪問這些變量和函數(例如,通過內聯事件處理程序)。
相關問題
- 1. JavaScript庫衝突
- 2. Jquery/Javascript衝突?
- 3. javascript衝突UpdatePanel
- 4. Javascript衝突?
- 5. javascript,jquery衝突
- 6. 衝突javascript
- 7. Javascript IE衝突
- 8. JavaScript衝突三次
- 9. Javascript來源衝突
- 10. 阻止Javascript衝突?
- 11. 解決JavaScript衝突
- 12. Javascript名稱衝突?
- 13. javascript函數衝突
- 14. WordPress的JavaScript衝突
- 15. Wordpress Javascript/jQuery衝突
- 16. JavaScript與virtmart衝突
- 17. Javascript代碼衝突
- 18. 燈箱JavaScript衝突
- 19. 解決Javascript衝突
- 20. Panoramio JavaScript API和PHP - 衝突?
- 21. Javascript和jQuery的衝突
- 22. JavaScript按鈕互相沖突
- 23. Wordpress中的Javascript衝突
- 24. Javascript與string.replace方法衝突
- 25. javascript open()方法衝突
- 26. 可能存在衝突javascript
- 27. Javascript和ctrl鍵衝突
- 28. Jinja和javascript語法衝突?
- 29. Html&CSS中的Javascript衝突
- 30. 衝突與JavaScript原型
感謝您的簡單... – Sachindra 2010-07-21 07:46:14