Javascript 元素选择器上的Jquery插件回调
我正在创建一个插件,它可以通过滚动来检测元素在视口中何时可见。我试图添加一个回调选项,当一个元素成为目标时,它会执行传入的任何内容。下面是我的插件的主要部分Javascript 元素选择器上的Jquery插件回调,javascript,jquery,jquery-plugins,scroll,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
$.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));
}
});
});
当我滚动到元素选择器时,我希望回调返回类名为someclass的元素,但它返回window
[窗口,jquery:1.10.2,构造函数:函数,初始化:函数,选择器:,toArray:函数…]
请告知我做错了什么…您需要共享完整的插件。。。其中是$.myPlugin,因为您正在调用新的$.myPlugin。此选项-在$.myPlugin方法中,此选项指的是jQuery对象,而不是目标元素。仍然缺少完整的插件方法…创建一个。您还可以看到[waypoint plugin]是否有助于抽象地理解它应该是这样的