2

ブートストラップポップオーバープラグインをラップするだけのjqueryUIウィジェットを作成しています。ウィジェットでオプション「singular」を渡すことができます。これを渡すと、プラグインの他のすべてのインスタンスの関数を呼び出す必要があります。

何かのようなもの

$('#one').myWidget();
$('#two').myWidget();
$('#three').myWidget();
$('#four').myWidget();

$('#one').myWidget('show'); //stuff from widget one is now visible
$('#two').myWidget('show'); //stuff from widget one and two are now visible
$('#three').myWidget('show'); //stuff from widget one, two and three are now visible
$('#two').myWidget('hide'); //stuff from widget one and three are now visible
$('#four').myWidget('show', {singular:true}); //stuff from widget four is now visible

だから、私はショー関数が次のように見えると想像します:

show: function(options){
    options = options || {};

    if(options.singular){
        var instances = '????'; // how do I get all instances?
        $.each(instances, function(i, o){
            o.myWidget('hide');
        });
    }

    this.element.popover('show');

}

myWidgetそれで、質問は、ウィジェットを持っているすべての要素への参照をどのように取得するのでしょうか?

4

1 に答える 1

8

ウィジェットの名前空間は$(':ui-myWidget')どこにあるかを使用できます。uiのようなクラスセレクターを使用するよりも遅い$('.ui-myWidget')ので、ウィジェットが作成されたときにクラスを追加することをお勧めします。

jQuery UIは、そこにあるすべてのウィジェットに対してこれを実行するため、またはのいずれかで各プログレスバーを取得でき$(':ui-progressbar')ます$('.ui-progressbar')

このブログ投稿では、thinをより深く説明しています。

于 2012-11-06T17:49:51.927 に答える