为什么一些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. javascript冲突UpdatePanel
- 3. 冲突javascript
- 4. Jquery/Javascript冲突?
- 5. 阻止Javascript冲突?
- 6. 解决Javascript冲突
- 7. Wordpress Javascript/jQuery冲突
- 8. javascript函数冲突
- 9. 解决JavaScript冲突
- 10. Javascript来源冲突
- 11. 灯箱JavaScript冲突
- 12. Javascript和jQuery的冲突
- 13. 冲突的CSS和Javascript
- 14. 冲突的jQuery/Javascript与Galleria
- 15. Javascript和ctrl键冲突
- 16. JavaScript的jQuery插件冲突
- 17. Panoramio JavaScript API和PHP - 冲突?
- 18. 之间的冲突2 javascript
- 19. 可能存在冲突javascript
- 20. 2 javascript函数冲突?
- 21. JavaScript和jQuery相互冲突
- 22. Javascript命名空间冲突
- 23. Html&CSS中的Javascript冲突
- 24. javascript函数名冲突
- 25. JavaScript库彼此冲突
- 26. javascript问题可能冲突
- 27. Javascript与string.replace方法冲突
- 28. 意外的颠覆冲突行为(冲突没有冲突)
- 29. 冲突
- 30. 冲突
感谢您的简单... – Sachindra 2010-07-21 07:46:14