jQuery(document).ready并传递'$'

时间:2011-06-07 18:25:14

标签: jquery wordpress document-ready

我有一个我在Wordpress模板中包含的js文件。有没有办法访问我的'MediaBrowser'对象中的'$'函数,而不必笨拙地传递它作为参数?

谢谢, 史蒂夫

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

4 个答案:

答案 0 :(得分:3)

使用自调用函数通过$访问jQuery。您有很多理由想要这样做,所以不要听其他人告诉您只是全球访问...

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

答案 1 :(得分:2)

var MediaBrowser = {
    initialize:function(){
        var $ = jQuery; //local var or just use `jQuery` below
        $("a[rel^='mediaBrowser']").prettyPhoto();
    }   
};
jQuery(document).ready(function(){
    MediaBrowser.initialize();
});

答案 2 :(得分:1)

我认为你在某处有些冲突?您可以为MediaBrowser创建一个闭包。请记住,它需要在加载jQuery后执行。

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

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

答案 3 :(得分:0)

总是可以包装一个匿名函数(但是,由于范围的原因,你需要明确地构成MediaBrowser的{​​{1}}部分:

window