jQuery和其他库,以及'$';
我有一个快速的初学者类型的问题。如果我使用jQuery和其他框架,下面的语句会有问题吗jQuery和其他库,以及'$';,jquery,Jquery,我有一个快速的初学者类型的问题。如果我使用jQuery和其他框架,下面的语句会有问题吗 jQuery(document).ready(function () { $("input[name='password']").focus(function () { $("input[value='login']").attr("checked", "checked"); }); }); 也就是说,在.ready()函数中使用“$”。是否应将“$”替换为“jQuery”以
jQuery(document).ready(function () {
$("input[name='password']").focus(function () {
$("input[value='login']").attr("checked", "checked");
});
});
也就是说,在.ready()函数中使用“$”。是否应将“$”替换为“jQuery”以避免冲突?是的,如果您使用的是另一个使用$的库,则可以使用完整形式的jQuery或在中设置jQuery。例如:
jQuery.noConflict();
//通过jQuery(…)使用jQuery
jQuery(文档).ready(函数(){
jQuery(“div”).hide();
});
//将原型与$(…)等一起使用。
$('someid').hide();
另一种利用短名称同时防止与其他库冲突的方法是执行以下操作:
<script>
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
function($) {
// jQuery code here
}(jQuery);
// use $ here to access other JS library
var$j=jQuery.noConflict();
//通过$j(…)使用jQuery
$j(文档).ready(函数(){
$j(“div”).hide();
});
//将原型与$(…)等一起使用。
$('someid').hide();
我建议阅读以下内容:
您显示的内容是正确的,只是您希望替换“$”的所有实例。然后将重写“$”函数
jQuery(document).ready(function () {
jQuery("input[name='password']").focus(function () {
jQuery("input[value='login']").attr("checked", "checked");
});
});
当然,要使代码尽可能明确-尤其是在这种情况下。如果站点稍后更改,您可能会调用错误的库。您可以将jQuery代码部分包装成如下函数:
<script>
var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
$j("div").hide();
});
// Use Prototype with $(...), etc.
$('someid').hide();
</script>
function($) {
// jQuery code here
}(jQuery);
// use $ here to access other JS library
您将能够在函数中使用$(这是一个将$映射到jQuery的自执行函数。当使用多个使用
$
的库时,通常的做法是使用noConflict模式并将jQuery的$
重新分配给其他库
var $jq = jQuery.noConflict();
$jq( function() {
$jq("input[name='password']").focus( function() {
$jq("input[value='login']").attr("checked","checked");
});
});
在插件开发中,处理此问题的常用方法是将`$作为参数传递给定义插件定义的函数,并将该函数应用于jQuery对象
;(function($) {
...
})(jQuery);
Callback for ready()将jQuery作为参数接收:您可以调用此参数$。这将覆盖回调范围内的其他$定义。@SilentGhost,谢谢。我正在寻找一个类似的问题,以便不再问同样的问题,但找不到任何内容。第二个选项可能更合适(经常使用)对于插件开发。因此建议的选项是使用.noConflict()或简单的“jQuery”。我只是想猜测最佳实践:-)我会说,对于直接包含在页面上的简短代码,我将使用noConflict模式。输入jQuery不需要太多次,您就会喜欢走捷径——这就是为什么首先要有$a的原因。对于较长的、自包含的代码(如插件),使用函数语法会更好、更容易,因为您可以使用快捷方式,并且始终需要注意可能存在冲突。