JQuery插件:如何公开绑定到实例的公共方法

时间:2012-03-10 17:21:41

标签: jquery jquery-plugins

有点困难。试图在插件中公开一个公共方法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()方法?

1 个答案:

答案 0 :(得分:0)

通常的方法是让你的插件函数接受一个命令字符串,例如:

$(selector).slider("stop");

这就是jQuery UI的各种插件所做的事情。所以你要修改你的函数来测试它是否收到了一个选项对象(你当前的代码)或一个命令字符串,并采取相应的行动。

在您的特定情况下,您必须使用data函数将计时器值存储在相关元素上。