riot.js嵌套标签 - 如何使用jquery选择内部html元素?

时间:2016-09-14 13:00:06

标签: javascript jquery materialize riot.js

我有一个包含嵌套标签的防暴标签...... 例如:

<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>

现在,我想使用Materialize库和jquery来创建列表 物化设计,如http://materializecss.com/forms.html 当选择&#39;时通常可以正常工作。标签位于父标签中!

但是,我无法找到初始化$('select').material_select();的位置 子进程中的命令,因此,子标记中的select标记不可见!。

我尝试在父标记和子标记的on(&#39; mount&#39;)区域内初始化它 - 但它似乎总是$(&#39; select&#39;)选择器返回一个空数组 - 任何想法?

1 个答案:

答案 0 :(得分:1)

您可以尝试强制孩子更新,然后在孩子上调用on('updated')事件,因为似乎DOM没有准备好onMount。查看此示例。

<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