jQuery(document).ready 并传递“$”

发布于 2024-11-14 08:12:41 字数 313 浏览 3 评论 0原文

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

谢谢, 史蒂夫

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

I have a js file that I am including in my Wordpress template. Is there a way to get access to the '$' function inside my 'MediaBrowser' object without having to clumsily pass it around as an argument?

Thanks,
Steve

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

他是夢罘是命 2024-11-21 08:12:41

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

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

Use a self-invoking function to get access to jQuery via $. There are many reason you'd want to do this so don't listen to other people telling you to just access it globally...

var MediaBrowser = (function($) {
  return {    
    initialize:function(){
      $("a[rel^='mediaBrowser']").prettyPhoto();
    }
  };
}(jQuery));
var MediaBrowser = {
    initialize:function(){
        var $ = jQuery; //local var or just use `jQuery` below
        $("a[rel^='mediaBrowser']").prettyPhoto();
    }   
};
jQuery(document).ready(function(){
    MediaBrowser.initialize();
});
var MediaBrowser = {
    initialize:function(){
        var $ = jQuery; //local var or just use `jQuery` below
        $("a[rel^='mediaBrowser']").prettyPhoto();
    }   
};
jQuery(document).ready(function(){
    MediaBrowser.initialize();
});
森罗 2024-11-21 08:12:41

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

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

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

I assume you have some conflicts somewhere? You could create a closure for MediaBrowser. Keep in mind, it will need to execute after jQuery has loaded.

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

    return {
        init : function() {
            // blah jquery stuff using $(..) syntax
        }
        ...
    }
}();
旧时浪漫 2024-11-21 08:12:41

始终可以封装在匿名函数中(但是,由于范围的原因,您需要显式地将 MediaBrowser 设为 window 的一部分:

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


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

Could always wrap in an anonymous function (but then, due to scope, you'd need to explicity make the MediaBrowser part of the window:

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


jQuery(document).ready(function(){
    MediaBrowser.initialize();
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文