4

Wordpress テンプレートに含める js ファイルがあります。「MediaBrowser」オブジェクト内の「$」関数に、不器用に引数として渡すことなくアクセスする方法はありますか?

ありがとう、スティーブ

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

4 に答える 4

3

$ 経由で jQuery にアクセスするには、自己呼び出し関数を使用します。これを行いたい理由はたくさんあるので、他の人がグローバルにアクセスするように言っているのを聞いてはいけません...

var MediaBrowser = (function($) {
  return {    
    initialize:function(){
      $("a[rel^='mediaBrowser']").prettyPhoto();
    }
  };
}(jQuery));
于 2011-06-07T18:31:08.130 に答える
2
var MediaBrowser = {
    initialize:function(){
        var $ = jQuery; //local var or just use `jQuery` below
        $("a[rel^='mediaBrowser']").prettyPhoto();
    }   
};
jQuery(document).ready(function(){
    MediaBrowser.initialize();
});
于 2011-06-07T18:27:50.513 に答える
1

私はあなたがどこかでいくつかの競合を抱えていると思いますか?MediaBrowser のクロージャを作成できます。jQuery がロードされた後に実行する必要があることに注意してください。

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

    return {
        init : function() {
            // blah jquery stuff using $(..) syntax
        }
        ...
    }
}();
于 2011-06-07T18:29:34.333 に答える
0

常に匿名関数でラップできます(ただし、スコープのために、のMediaBrowser一部を明示的に作成する必要がありますwindow

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


jQuery(document).ready(function(){
    MediaBrowser.initialize();
});
于 2011-06-07T18:32:55.497 に答える