Jquery ui 我可以将ember.js与jquery ui accordion一起使用吗
我有一个在控制器数组上迭代的模板——出于某种原因,我不能使用jquery ui accordion函数——我认为这是由于ember添加到html中的标记,例如Jquery ui 我可以将ember.js与jquery ui accordion一起使用吗,jquery-ui,ember.js,Jquery Ui,Ember.js,我有一个在控制器数组上迭代的模板——出于某种原因,我不能使用jquery ui accordion函数——我认为这是由于ember添加到html中的标记,例如 有什么想法吗?我该怎么解决这个问题 代码如下: <div id="chat-tab-container"> <script type="text/x-handlebars"> {{#each App.chatTabsController}}
有什么想法吗?我该怎么解决这个问题
代码如下:
<div id="chat-tab-container">
<script type="text/x-handlebars">
{{#each App.chatTabsController}}
<h3 class="row1">
<div class="avatar " style="background: red;">*</div>
<div class="contact-name ">{{contactName}}</div>
</h3>
<div class="row2">
<div class="contact-name ">content</div>
</div>
<h3 class="row1">
<div class="avatar " style="background: red;">*</div>
<div class="contact-name ">boni</div>
</h3>
<div class="row2">
<div class="contact-name ">content</div>
</div>
{{/each}}
</script>
</div>
{{{#每个App.chattascontroller}
*
{{contactName}}
内容
*
博尼
内容
{{/每个}}
jquery调用:
$(“#chat tab container”).accordio()
这应该可以工作,因为我在项目中使用它时没有问题。您是否尝试过在页面完全加载后从控制台调用$(“#聊天选项卡容器”).accordion()?jQuery小部件的问题通常是由于内容控制器更改时内容未呈现或重新呈现
可以通过以下几种方法克服这一问题:
$('body').on( 'mouseover', '#chat-tab-container', function(){
$(this). accordion();
});
这应该可以工作,因为我在一个项目中使用它没有问题。您是否尝试过在页面完全加载后从控制台调用$(“#聊天选项卡容器”).accordion()?jQuery小部件的问题通常是由于内容控制器更改时内容未呈现或重新呈现 可以通过以下几种方法克服这一问题:
$('body').on( 'mouseover', '#chat-tab-container', function(){
$(this). accordion();
});
正如Cory所提到的,问题是当调用accordion方法时,accordion的内容没有呈现/插入到DOM中。一种解决方法是使用余烬视图作为包装器,并在didInsertElement方法内调用accordion方法。我提供了一个工作示例 基本上,您的模板更改为:
<script type="text/x-handlebars">
{{#view App.TabView}}
{{#each App.chatTabsController.content}}
<h3>{{contactName}}</h3>
<div>content for {{contactName}}</div>
{{/each}}
{{/view}}
</script>
正如Cory所提到的,问题是当调用accordion方法时,accordion的内容没有呈现/插入到DOM中。一种解决方法是使用余烬视图作为包装器,并在didInsertElement方法内调用accordion方法。我提供了一个工作示例 基本上,您的模板更改为:
<script type="text/x-handlebars">
{{#view App.TabView}}
{{#each App.chatTabsController.content}}
<h3>{{contactName}}</h3>
<div>content for {{contactName}}</div>
{{/each}}
{{/view}}
</script>
谢谢另一个对我有效的选项是显式地将accordion的handle选项设置为“h3”:
$(“#chat tab container”).accordion({handle:'h3'})
这个方法经常遇到的问题是,如果App.chattascontroller.content是ArrayController(在本例中,我认为是这样的)我在App.chattablescontroller.content上推送额外的内容,但事情可能不会按预期进行。对于accordion视图,这可能不是一个问题,因为我假设在大多数情况下,内容是相当静态的,但对于其他jQuery小部件(如Dragables),将呈现数组上的新内容,但dom元素可能没有正确工作所需的jQuery属性。谢谢!!!另一个对我有效的选项是显式地将accordion的handle选项设置为“h3”:$(“#chat tab container”).accordion({handle:'h3'})
这个方法经常遇到的问题是,如果App.chattascontroller.content是ArrayController(在本例中,我认为是这样的)我在App.chattablescontroller.content上推送额外的内容,但事情可能不会按预期进行。对于accordion视图,这可能不是一个问题,因为我假设在大多数情况下,内容是相当静态的,但对于其他jQuery小部件(如Dragables),将呈现数组上的新内容,但dom元素可能没有正常工作所需的jQuery属性。这主意不错。只是我认为最好使用jQuery的方法one
。好主意。只是我认为最好使用jQuery的方法one
。