jQuery(document).ready和passing'$';

jQuery(document).ready和passing'$';,jquery,wordpress,document-ready,Jquery,Wordpress,Document Ready,我有一个包含在Wordpress模板中的js文件。有没有一种方法可以访问我的“MediaBrowser”对象中的“$”函数,而不必笨拙地将其作为参数传递 谢谢, 史蒂夫 我猜你在什么地方有冲突?您可以为MediaBrowser创建一个闭包。请记住,它需要在jQuery加载后执行 var MediaBrowser = function() { var $ = jQuery; return { init : function() { // b

我有一个包含在Wordpress模板中的js文件。有没有一种方法可以访问我的“MediaBrowser”对象中的“$”函数,而不必笨拙地将其作为参数传递

谢谢, 史蒂夫


我猜你在什么地方有冲突?您可以为MediaBrowser创建一个闭包。请记住,它需要在jQuery加载后执行

var MediaBrowser = function() {
    var $ = jQuery;

    return {
        init : function() {
            // blah jquery stuff using $(..) syntax
        }
        ...
    }
}();

使用自调用函数通过$访问jQuery。你想这么做有很多原因,所以不要听别人告诉你只需在全球范围内访问它

var MediaBrowser = (function($) {
  return {    
    initialize:function(){
      $("a[rel^='mediaBrowser']").prettyPhoto();
    }
  };
}(jQuery));

始终可以封装在匿名函数中(但是,由于作用域的原因,您需要明确地将
媒体浏览器
作为
窗口
的一部分:

(function($){
    window.MediaBrowser = {
        initialize: function(){
            $('<p>').text('Sample').appendTo('body');
        }
    };
})(jQuery);


jQuery(document).ready(function(){
    MediaBrowser.initialize();
});
(函数($){
window.MediaBrowser={
初始化:函数(){
$(“”).text('Sample').appendTo('body');
}
};
})(jQuery);
jQuery(文档).ready(函数(){
MediaBrowser.initialize();
});

你有什么理由不能只使用
jQuery
而不使用
$
吗?也许可以检查一下你的接受率,如果你对已经回答的问题给出反馈,你会得到更多的问题答案。@tadman:可能也是因为jQuery有一个
方法。noConflict
方法?我想说,假设这个方法是安全的您明确使用
jQuery
是有原因的,但希望能够使用
$
速记,并且不受干扰。感谢您的提醒@stefgosselin.Ah,我最后只是将$=jQuery;加载到初始化上方的.ready函数中。感谢@NealI guess Wordpress动态加载jQuery,没有冲突我不熟悉WP和jquery(来自原型)。Thx用于sugg。Thx用于建议。我想我不想让它成为window对象的一部分。上面的操作非常简单。
var MediaBrowser = (function($) {
  return {    
    initialize:function(){
      $("a[rel^='mediaBrowser']").prettyPhoto();
    }
  };
}(jQuery));
(function($){
    window.MediaBrowser = {
        initialize: function(){
            $('<p>').text('Sample').appendTo('body');
        }
    };
})(jQuery);


jQuery(document).ready(function(){
    MediaBrowser.initialize();
});