jQuery($)破解脚本的简写。必须使用长版

时间:2013-11-28 08:05:35

标签: jquery

我最近从某人手中接过了一些代码,我遇到了一个我以前从未遇到的问题(更多的是烦恼)。这也证明很难研究。

基本上这个人使用jQuery来选择控件而不是速记$版本。例如

jQuery("#controlid").val();

用于代替

$("#controlid").val();

后者打破了我使用$简写创建的任何jQuery脚本。

之前有没有人经历过这样的事情?是否有一些小东西我需要改变才能消除这种烦恼?

提前致谢。

1 个答案:

答案 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。