如何在 Ember.js 中向 DOM 添加特定元素?

Posted

技术标签:

【中文标题】如何在 Ember.js 中向 DOM 添加特定元素?【英文标题】:How do I add a specific element to the DOM in Ember.js? 【发布时间】:2014-01-29 21:19:47 【问题描述】:

出于样式目的,我想创建一个 div,当悬停在不同的 div 上时,它充当叠加层。

我计划使用自定义事件在一个元素上捕获 MouseInMouseOut

然后在每个其他部分之前创建 div 以充当叠加层,将它们显示为失焦。

基本上,在我的模板中,我有

#each answers
    render "simpleSearchAnswer" this
/each

那个子视图模板是:

<li class="questioncontainer">
    <div action "select" this class="questiontile">
        <div class="row questiontitle">
            <p><span>title</span>
            <i class="icon-info-circled"></i></p>
        </div>
        <div class="row questiondescription">
            <p><span>description</span>
            </p>
        </div>
    </div>
</li>

我想在顶部添加一个新的 div 作为叠加层,比如

<li class="questioncontainer">
    <!-- NEW STUFF BELOW-->
    <div class="overlay"></div>
    <!-- NEW STUFF ABOVE -->

    <div action "select" this class="questiontile">
        ....

但是在渲染之后,而不是之前,当用户使用应用程序时。

我想,基本上我要问的是,是否可以使用 Ember.js 动态添加 div?渲染后?

【问题讨论】:

【参考方案1】:

您可以为“simpleSearchAnswer”定义一个自定义视图,定义 MouseEnter 和 MouseLeave 方法,然后使用 JQuery 来完成您需要做的事情。

类似:

App.SimpleSearchAnswerView = Em.View.extend(

    mouseEnter: function ()
        //jquery to add your div
    ),

    mouseLeave: function ()
        //jquery to remove your div
    )

);

您可以使用 this.$() 访问您的视图的 Jquery 对象

http://emberjs.com/api/classes/Ember.View.html 在“事件名称”下列出了您可以使用的所有事件。

【讨论】:

以上是关于如何在 Ember.js 中向 DOM 添加特定元素?的主要内容,如果未能解决你的问题,请参考以下文章

Ember.js 路由器:如何动画状态转换

如何在 JavaScript 中向 DOM 元素添加类?

使用 Ember.js,如何在渲染视图后运行一些 JS?

如何在 qmake 项目中向 moc 添加特定标志?

在 React 中向 DOM 添加新元素

如何在 Python 中向直方图添加特定的 x 刻度线? [复制]