我需要一个转换器来使用no.conflict模式制作任何jquery代码/插件吗?
或者只有查找和替换才有可能。
答案 0 :(得分:1)
至于$
快捷方式:如果您放置代码,例如在一个精心设计的匿名函数中,您仍然可以使用它。像:
(function ($, undefined) {
//Use $ shortcut for jQuery in this scope
$("input").val("clickme");
})(jQuery.noConflict());
同样适用于noConflict()
的“极端”变体:
(function (jQuery, undefined) {
var $ = jQuery;
//Use jQuery and $ shortcut for jQuery in this scope
$("input").val("clickme");
})(jQuery.noConflict(true));
答案 1 :(得分:1)
您必须手动执行此操作。没有转换器可以自动执行此操作。 jQuery guide to authoring plugins具体描述了插件应该如何绑定到jQuery
而不是$
,以确保在调用jQuery.noConflict()
时它们仍能正常工作。
基本上它归结为像这样包装你的代码:
(function($) {
// jQuery can be used freely using
// the "$" within this code block
})(jQuery);
请记住,这将从全局范围中删除任何意外(和一些有意的)全局变量。要使变量成为全局变量,请将它们分配给window
对象,如下所示:
(function($) {
var myGlobalObj = "hello world";
window.myGlobalObj = myGlobalObj;
// Now "myGlobalObj" can be accessed globally
})(jQuery);