jQuery和其他库,以及’$’的用法
我有一个快速,初学者类型的问题。 如果我要使用jQuery和其他一些框架,那么下面的语句会有问题:
jQuery(document).ready(function () { $("input[name='password']").focus(function () { $("input[value='login']").attr("checked", "checked"); }); });
也就是说,在.ready()函数中使用’$’。 ‘$’应该用’jQuery’代替,以避免冲突吗?
当使用多个使用$
库时,通常的做法是使用noConflict模式并将$
for jQuery重新分配给其他东西。
var $jq = jQuery.noConflict(); $jq( function() { $jq("input[name='password']").focus( function() { $jq("input[value='login']").attr("checked","checked"); }); });
在插件开发中,处理此问题的常用方法是将`$’作为参数传递给定义插件定义的函数,并将该函数应用于jQuery对象。
;(function($) { ... })(jQuery);
是的,如果你正在使用另一个使用$的库,你可以使用完整forms的jQuery或在无冲突模式下设置jQuery。 例如:
在防止与其他库冲突的同时从短名称中受益的另一种方法是做这样的事情:
我建议读这个:
你所展示的是正确的,除非你想要替换’$’的所有实例。 然后,您将覆盖’$’函数。
jQuery(document).ready(function () { jQuery("input[name='password']").focus(function () { jQuery("input[value='login']").attr("checked", "checked"); }); });
当然,尽可能使代码明确 – 特别是在这种情况下。 如果网站稍后更改,您最终可能会调用错误的库。
你可以将jQuery代码部分包装成这样的函数:
function($) { // jQuery code here }(jQuery); // use $ here to access other JS library
并且你将能够在函数内部使用$(这是将$映射到jQuery的自执行函数。
jQuery(document).ready(function ($) { $("input[name='password']").focus(function () { $("input[value='login']").attr("checked", "checked"); }); });
ready()的回调接收jQuery作为参数:你可以调用这个参数$。 这将覆盖回调范围内的其他$定义。