我最近从某人手中接过了一些代码,我遇到了一个我以前从未遇到的问题(更多的是烦恼)。这也证明很难研究。
基本上这个人使用jQuery来选择控件而不是速记$
版本。例如
jQuery("#controlid").val();
用于代替
$("#controlid").val();
后者打破了我使用$
简写创建的任何jQuery脚本。
之前有没有人经历过这样的事情?是否有一些小东西我需要改变才能消除这种烦恼?
提前致谢。
答案 0 :(得分:2)
解决方案#1 :jQuery.noConflict()
许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果你需要在jQuery旁边使用另一个JavaScript库,那么通过调用$ .noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。
$.noConflict();
// Code that uses other library's $ can follow here, not jQuery
解决方案#2 :$
Alias
// Option #1, Document Ready Event
jQuery(function($) {
// Code that uses jQuery's $ can follow here.
});
// Option #2, Anonymous Invocation
(function($) {
$(function() {
// More code using $ as alias to jQuery
});
})(jQuery);
原因当然是因为在jQuery之后加载了一个脚本,它使用$
作为自身的别名,这导致它不再属于jQuery。