2012-03-10 11 views
1

少し難解です。パブリックメソッドstop()をプラグイン内に公開しようとしています。複数のプラグインインスタンスがページ上で実行されている可能性があります。私は、次の操作を実行できるようにしたい:JQuery Plugin:インスタンスに関連付けられたパブリックメソッドを公開する方法

​​

私は、次のしている:

; (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); 

A私は特定のインスタンスに対して呼び出すことができます停止()メソッドを公開する方法は?

+0

正確には何ですか? 'timer'で' clearInterval() 'を呼び出しますか? –

+0

@lilaGはい、タイマーの間隔をクリアします – Chev

答えて

0

通常の方法は、例えば、コマンド文字列を受け入れ、あなたのプラグインの機能を持つことである。:

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

例えば、jQueryのUIのさまざまなプラグインが何だそれ。したがって、オプションオブジェクト(現在のコード)またはコマンド文字列を受け取ったかどうかをテストする関数を変更し、それに応じて動作します。

具体的には、おそらくdata機能を使用して、問題の要素にタイマー値を保存する必要があります。

+0

これは確かに最善の方法です - これを実現する方法についていくつかのコードを探しているならhttps://github.com/twitter/bootstrap/ blob/master/js/bootstrap-alert.js:下のプラグイン定義を参照 – nav

関連する問題