2016-09-14 9 views
1

私は... 例をネストされたタグが含まれている暴動のタグを持っている:riot.jsネストされたタグ - jqueryで内側のhtml要素を選択するにはどうすればよいですか?

<parent> 
<!-- dome html here...--> 
    <child></child> <!-- visually - the child is mounted correctly !--> 

    <script> 
     this.on('mount', function(){ 
      $('select').material_select(); 
     }); 
    </script> 
</parent> 

<child> 
    <select> 
     <option values="1">1</option> 
     <option values="2">2</option> 
     <option values="3">3</option> 
    </select> 
    <script> 
     this.on('mount', function(){ 
      $('select').material_select(); 
     }); 
    </script> 
</child> 

は今、私はそのようなhttp://materializecss.com/forms.html それのように実体に設計されたリスト を作るためにマテリアライズライブラリーとjQueryを使用したいです'select'タグが親タグにある場合、通常正しく動作します!

しかし、子の中で$('select').material_select(); コマンドを初期化する場所を見つけることができないため、子タグのselectタグは表示されません。

親タグと子タグのon( 'mount')領域内で初期化しようとしましたが、常に$( 'select')セレクタが空の配列を返します。

+0

私は今、それを処理しています方法は、私は$(「選択」)を初期化しています...本当に最適ではありませんmaterial_select();関数内でsetTimeout()を使ってマウントイベントが発生してから1000ミリ秒後に呼び出す - これはうまくいきますが、実際にはエレガントではありません - ネストされたタグがいつマウントされるかを知るもっとエレガントな方法はありますか? –

+0

子タグのマウントイベントで '$( 'select'、this.root).material_select();'を試しましたか? – Heikki

+0

私のwebpackedアプリではなく、私のjsFiddle:https://jsfiddle.net/ghstahl/pob86fj3/でうまく動作します。私は最後の呼び出しを行うために私のマウントから100ミリ秒タイマーをしなければならなかった。 –

答えて

1

DOMの準備ができていないように見えるため、子供が更新されてから強制的に子のon( 'updated')イベントを呼び出そうとすることができます。この例を確認してください。

<parent> 
<!-- dome html here...--> 
    <child></child> <!-- visually - the child is mounted correctly !--> 

    <script> 
     this.on('mount', function(){ 
      this.update(); 
     }); 
    </script> 
</parent> 

<child> 
    <div> 
    <select> 
     <option values="1">1</option> 
     <option values="2">2</option> 
     <option values="3">3</option> 
    </select> 
    </div> 
    <script> 
     this.on('updated', function(){ 
      $('select').material_select(); 
     }); 
    </script> 
</child> 

オンライン版https://jsfiddle.net/vitomd/Lm4dy21d/5

+1

最新の(v2.6.1)暴動バージョンを使用している場合、あなたの例はうまく動作しません - > https://jsfiddle.net/qbjw4sq8/ – Heikki

+1

ここでは、Heikkiのフィドルの複雑なバリエーションです。 https://jsfiddle.net/ghstahl/pob86fj3/ 私は動的に作成されたIDとフックアップの変更イベントを使用します。 –

関連する問題