我正在创建一个插件,可以使用滚动来检测视口中元素何时可见。我正在尝试添加一个回调选项,该选项执行在定位元素时传递的任何内容。以下是我的插件的主要部分。
$.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…]
请告知我做错了什么......