Javascript &引用;jQuery(…)”;而不是",$(……)”等;

Javascript &引用;jQuery(…)”;而不是",$(……)”等;,javascript,jquery,Javascript,Jquery,编写jQuery(“…”)而不是$(“…”)是一种好的做法吗 我听说如果其他库也使用$,这可能有助于避免将来与其他库发生冲突,但这是一个现实问题吗?比方说,我真的不知道我将来会使用哪些库,所以我应该避免在脚本中编写$(“…”)?还有其他著名的库依赖于$吗 另外,我想知道这个主题是否还有其他问题。$现在经常使用,如果您不使用它,其他库事件可能会使用它。你可以用 许多JavaScript库使用$作为函数或变量名,只是 就像jQuery一样。在jQuery中,$只是jQuery的别名,所以 所有功能均

编写
jQuery(“…”)
而不是
$(“…”)
是一种好的做法吗

我听说如果其他库也使用
$
,这可能有助于避免将来与其他库发生冲突,但这是一个现实问题吗?比方说,我真的不知道我将来会使用哪些库,所以我应该避免在脚本中编写
$(“…”)
?还有其他著名的库依赖于
$


另外,我想知道这个主题是否还有其他问题。

$现在经常使用,如果您不使用它,其他库事件可能会使用它。你可以用

许多JavaScript库使用$作为函数或变量名,只是 就像jQuery一样。在jQuery中,$只是jQuery的别名,所以 所有功能均可用,无需使用$。如果您需要使用 jQuery旁边的另一个JavaScript库,返回$back控件 调用$.noConflict()调用另一个库。旧的参考文献 在jQuery初始化过程中保存$;noConflict()只恢复 他们,参考


使用$forjQuery是非常安全的,这是jQuery的习惯用法,至少在您自己控制的页面上是如此

如果您确实选择在小部件中使用jQuery,那么您可以以一种防止冲突的方式来构造它

一般来说,jQuery同时绑定到$和jQuery,因此单独使用jQuery并不能保证安全

如果您关心冲突,jQuery会公开$.noConflit();

这将放弃对$的控制,您可以将jQuery存储在您选择的变量中(或使用jQuery)

以下是基于和使用$符号的库:

浏览此页面时,我想到的只有:

  • jQuery-提供jQuery.noConflict()来释放$
  • 原型
  • 穆托尔斯
  • 然而,jQuery以90%的市场份额扼杀了它


  • 您可以使用sell调用函数包装代码,并使用您想要的名称

    (function (JQUERY, otherLIB) {
      // ...
    }(jQuery, $))
    

    其他一些图书馆也使用美元符号。我也可以用。但是总是有可能使用jQuerys模式,因此您可以非常安全地在代码中使用美元符号。

    由于jQuery是众所周知的,所以
    $
    只是一个简写名称空间,许多javascript框架倾向于将
    $
    视为保留名称空间,并避免使用它。也就是说,任何人都很容易将任何代码命名为
    窗口。$

    如果您知道
    $
    名称空间确切指的是什么,那么您可以删除对该名称空间的jQuerys绑定,并将其自己重新绑定到全局范围之外

    jQuery.noConflict();
    
    (function($) {
    
        // your code that can use $ as jQuery namespace
    
    })(jQuery);
    

    如果您正在使用
    .ready()
    函数(或快捷方式版本)包装代码,那么已经内置了一些功能,可以让您安全地访问jQuery库。这是通过在您提供的回调中定义函数参数实现的

    jQuery(document).ready(function($) { 
        /* in here, $ is safe */ 
    }); 
    
    jQuery(function($) { 
        /* in here, $ is safe */ 
    });
    
    由于jQuery将自身作为第一个参数传递给回调,因此您可以给它任何您想要的名称,包括
    $
    。因为它形成一个局部参数,所以它不受全局空间中相同名称的影响,也不会影响全局空间中的相同名称


    这样就不需要
    .noConflict()
    或手动IIFE方法。您所需的一切都已准备就绪。

    如果您使用的是
    .ready()
    函数或快捷方式版本,那么您只需执行以下操作:
    jQuery(document).ready(函数($){/*$是安全的*/})
    (或快捷方式版本。)
    jQuery(函数($){/*$是安全的*/})这样就不需要
    .noConflict()
    或手动的生活方式。@CrazyTrain谢谢你的解释!你会把它作为答案发布吗?:)当然,我能做到。给我一分钟。