1

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

<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 当“选择”标签位于父标签中时,它通常可以正常工作!

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

我试图在父标签和子标签的 on('mount') 区域内对其进行初始化 - 但似乎 $('select') 选择器总是返回一个空数组 - 有什么想法吗?

4

1 回答 1

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

于 2016-09-14T17:08:09.013 回答