2011-08-04 13 views
1

スムーズなスクロールのために、次のバージョンのjQueryプラグインに取り組んでいます(Smooth Div Scroll)。これはjQueryウィジェットファクトリに基づくステートフルなプラグインですので、プラグインが初期化された後にプラグインの状態を変更することができます。ユーザーは、プラグインの設定オプションを変更するか、私が提供するパブリックメソッドのいずれかを使用することができます。jQueryプラグインの設定オプションが変更されたときにイベントをトリガーしますか?オプションまたはパブリックメソッド?

このプラグインには、ブール値のオプションがあります。hotSpotScrolling(true/false)。プラグインが初期化されたときに指定されたオプションの一部としてこのオプションをtrueに設定すると、スクロールのホットスポットが有効になります。逆も同様です。falseに設定されている場合は無効になります。

プラグインが初期化された後にユーザーがこのオプションを変更した場合、この変更に対応するためのプラグインが必要です。したがって、ユーザーがhotSpotScrollingをfalseに設定した場合、ホットスポットを非表示にし、ホットスポットスクロールに関連する他のものを無効にする必要があります。逆に、ユーザーがhotSpotScrollingをtrueに設定した場合、ホットスポットを表示して他のものをアクティブにする必要があります。

しかし、私が知っている限り、今説明したシナリオの行に沿ったオプションの変更にjQueryプラグインが対応する方法はありません。それは望ましいとは確信していません。私にとっては、パブリックメソッドのタスクのように聞こえるでしょうか?したがって、オプションを変更する代わりに、ユーザーはパブリックメソッドを呼び出し、このメソッド内でプラグインの状態を変更するコードを記述します。

jQueryプラグインでオプションを変更してパブリックメソッドを呼び出すこと、そしてこのジレンマに照らしてコードを使っていくつかの素敵な例を呼び出すことをお勧めします。

ありがとうございます! /トーマス

答えて

1

更新タブウィジェットが初期化後に変更ばかりのオプションをどのように処理するかをチェックしてください:

https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.accordion.js#L157-191

ものです:

https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.tabs.js#L113-140

更新アコーディオンは、同じことを行いあなたはやりたいと思うでしょう。

+0

はい、これは私が探しているものです! jQueryウィジェットのファクトリ_SetOptionをオーバーライドすることで、オプションが変更されたときにプラグインが行うことができます。このページの「オプションの使用」の見出しも参照してください:http://blog.nemikor.com/2010/05/15/building-stateful-jquery-plugins/ありがとう! – tkahn

関連する問題