有点困难。试图在插件中公开一个公共方法stop()。可以在页面上运行多个插件实例。我希望能够做到以下几点:
var slider = $('#slider1').myslider();
// later
slider.stop();
我有以下内容:
; (function ($) {
$.fn.myslider = function (options) {
var defaults = {
interval: 2000
};
var o = jQuery.extend(defaults, options);
return this.each(function () {
var slider = $(this);
var timer;
var active;
var rotateSwitch = function () {
timer = setInterval(function () {
active = $('.slider_active', slider).next();
if (active.length === 0) {
active = $('.slider_paging a:first', slider);
}
rotate();
}, o.interval);
};
rotateSwitch();
...
});
};
})(jQuery);
如何公开我可以为特定实例调用的stop()方法?
答案 0 :(得分:0)
通常的方法是让你的插件函数接受一个命令字符串,例如:
$(selector).slider("stop");
这就是jQuery UI的各种插件所做的事情。所以你要修改你的函数来测试它是否收到了一个选项对象(你当前的代码)或一个命令字符串,并采取相应的行动。
在您的特定情况下,您必须使用data
函数将计时器值存储在相关元素上。