在这个简单的例子中:
var myFunction = function(obj) {
console.log($(obj));
}
我正在使用 $.如果我使用:
jQuery.noConflict();
var myObj = {X:1};
myFunction(myObj);
那么 $ 就不再有效了。
但是如果我将 myFunction 包裹在里面
jQuery(function($) {
var myFunction = function(obj) {
console.log($(obj));
}
});
然后就找不到了。 myFunction 位于一个单独的脚本中,因此我无法将所有内容包装在一个巨大的 jQuery(function($) {} 中。
最佳答案
试试这个:
( function($) {
window.myFunction = function(obj) {
console.log($(obj));
}
})(jQuery);
单独的文件:
myFunction({X:1});
不同之处在于,您的代码会立即执行,而不是在 dom 准备好之后执行,并且您将函数放置在全局上下文(窗口)中。因此它将在任何地方都可用。
我不知道你在做什么,但在这种情况下,你可能会发现 JQuery 插件更适合你:
( function($) {
$.fn.myFunction = function(obj) {
console.log(this);
}
})(jQuery);
单独的文件:
jQuery({X:1}).myFunction();
当然,$( {X:1} ) 可能会用 JQuery 做奇怪的事情 - 我以前从未尝试过!
关于jQuery 无冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7026634/