2

現在、ウィジェット ファクトリを使用して jQuery UI ウィジェットを開発しています。ウィジェットを含むセレクターを取得する必要があります。

物事を片付けるには:

  • 私はjQuery UIタブを使用しています(公式)
  • 私のウィジェットは各タブに作成されます(各タブに1つのインスタンス、異なる表示を意味します)
  • タブでアクションを実行すると、同じタブにあるウィジェットを更新する必要があります

問題 :

  • 上記のアクションを実行すると、更新は右側のタブでは行われず、最初のタブで行われます

アクションでリスナーのいくつかの変更を試みましたが、問題はウィジェット自体にあると思います。id で定義されているタブ自体を除いて、すべてがクラスで定義されています (複数回表示されるため)。上記の子であるウィジェット要素で実現しようとしましたdiv#idが、うまくいきません。

私が必要としているのは、ウィジェットのコードからウィジェットのコンテナーを取得して、右側のタブで変更を行う方法を知ることです。

助けてくれてありがとう。

編集:は私のアプリの(非常に)基本的な構造を示すjsfiddleです。アクションを起動するときは、最も近いウィジェット インスタンス、つまり同じタブ内のインスタンスで実行します。しかし、実際の効果は最初のタブにあります。これは、(私が思うに) クラスを使用して独自の要素を見つける私のプラグインによるものです。でももし言えるなら

私が作成されたコンテナの子である要素を取得します

私はそれがうまくいくと信じています

4

2 に答える 2

1

次のようなものを使用する必要があります。

myElement.mywidget("widget");
于 2012-07-24T08:31:30.350 に答える
0

あなたのフィドルに基づいてfnagelの回答を完成させます:

$(document).ready(function(){
   $('#tabs').tabs(); 

   $('#widget-1').mywidget().mywidget('widget').attr('id','widget-1_mywidget');
   $('#widget-2').mywidget().mywidget('widget').attr('id','widget-2_mywidget');

   $('.action').click(function(){
       var myWidget = $(this).siblings('.widget').mywidget("widget");
       myWidget.mywidget('dothis');
   });
});​
于 2012-07-24T08:40:56.863 に答える