Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 我可以将ember.js与jquery ui accordion一起使用吗_Jquery Ui_Ember.js - Fatal编程技术网

Jquery ui 我可以将ember.js与jquery ui accordion一起使用吗

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

我有一个在控制器数组上迭代的模板——出于某种原因,我不能使用jquery ui accordion函数——我认为这是由于ember添加到html中的标记,例如

有什么想法吗?我该怎么解决这个问题

代码如下:

<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小部件的问题通常是由于内容控制器更改时内容未呈现或重新呈现

可以通过以下几种方法克服这一问题:

  • 使用一个Ember.View并钩住didInsertElement或afterRender回调
  • 如果由于内容更改而导致视图大量更新,则可以添加事件侦听器,以便在鼠标进入小部件UI区域时调用$(“#聊天选项卡容器”).accordion()。我经常在分类表、手风琴和拖拉表中使用这种方法
  • 以下是一个例子:

    $('body').on( 'mouseover', '#chat-tab-container', function(){
      $(this). accordion();
    });
    

    这应该可以工作,因为我在一个项目中使用它没有问题。您是否尝试过在页面完全加载后从控制台调用$(“#聊天选项卡容器”).accordion()?jQuery小部件的问题通常是由于内容控制器更改时内容未呈现或重新呈现

    可以通过以下几种方法克服这一问题:

  • 使用一个Ember.View并钩住didInsertElement或afterRender回调
  • 如果由于内容更改而导致视图大量更新,则可以添加事件侦听器,以便在鼠标进入小部件UI区域时调用$(“#聊天选项卡容器”).accordion()。我经常在分类表、手风琴和拖拉表中使用这种方法
  • 以下是一个例子:

    $('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