在jquery插件事件中访问$this

前端之家收集整理的这篇文章主要介绍了在jquery插件事件中访问$this前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在编写一个jQuery插件,它涉及将事件绑定到window.scroll.
window.scroll中执行的操作取决于调用原始初始化时传入的设置.

如何在绑定事件中访问数据元素?

 (function($) {
    var methods = {
        init : function(options) {
            return this.each(function() {
                $(window).bind("scroll.myPlugin",methods.windowOnScroll);
            });
        },windowOnScroll : function() {
            var $this = $(this);
            var data = $this.data("scrollingLoader");
            if (data.something) {
                 // ...
            }
        }
  })(jQuery);
最佳答案
jQuery提供了一个方便的函数$.proxy,它可以实现跨浏览器的功能绑定.

(function($) {
    var methods = {
        init : function(options) {
            return this.each(function() {
                $(window).bind("scroll.myPlugin",$.proxy(methods.windowOnScroll,methods));
            });
        },windowOnScroll : function() {
            var $this = $(this);
            var data = $this.data("scrollingLoader");
            if (data.something) {
                 // ...
            }
        }
  })(jQuery);

$.proxy函数返回一个函数,该函数将始终执行第二个参数上下文中第一个参数传递的函数. http://api.jquery.com/jQuery.proxy

猜你在找的jQuery相关文章