元素选择器上的Jquery插件回调

时间:2014-02-22 15:57:58

标签: javascript jquery jquery-plugins scroll

我正在创建一个插件,可以使用滚动来检测视口中元素何时可见。我正在尝试添加一个回调选项,该选项执行在定位元素时传递的任何内容。以下是我的插件的主要部分。

$.myPlugin = function(el, options) {

var base = this;

// Access to jQuery and DOM versions of element
base.$el = $(el);
base.el = el;

// Initialize
base.init = function() {
    base.options = $.extend({}, $.myPlugin.defaultOptions, options);
};

// when element is visible in the viewport 
if (base.inviewport()) {
    // Callback
    if (typeof base.options.callback === 'function') {
        base.options.callback.call(this);
    }
    return;
}

// Run initializer
base.init();

$.fn.myPlugin = function(options) {
    return this.each(function() {
        (new $.myPlugin(this, options));
    });
};

}

现在我正在尝试使用回调:

$(function() {
    $('.some-class').myPlugin({
        callback: function() {
            console.log($(this));
        }
    });
});

当我滚动到元素选择器时,我希望回调返回类名为some-class的元素,而是返回window

[Window, jquery: "1.10.2", constructor: function, init: function, selector: "", toArray: function…]

请告知我做错了什么......

0 个答案:

没有答案