gpt4 book ai didi

javascript - 使用 Twitter Flight 将组件附加到动态创建的元素

转载 作者:行者123 更新时间:2023-11-29 18:15:20 26 4
gpt4 key购买 nike

一直在寻找如何通过 Twitter Flight 附加到动态创建的元素。

具有以下 HTML

<article>Add element</article>

以及下面的组件定义

var Article = flight.component(function () {
this.addElement = function () {
this.$node.parent().append('<article>Add element</article>');
};

this.after('initialize', function () {
this.on('click', this.addElement);
});
});
Article.attachTo('article');

创建新元素后,不会触发点击事件。这是 fiddle :http://jsfiddle.net/smxx5/

最佳答案

恕我直言,这不是您应该使用 Flight 的方式。

每个组件都应该与应用程序的其余部分隔离,因此您应该避免这种情况。$node.parent()

另一方面,您可以与后代互动。

我的建议是创建一个使用事件委托(delegate)的“文章管理器”组件。例如。

http://jsfiddle.net/kd75v/

<div class="js-articles">
<article class="js-article-add">Add element</article>
<div/>

var ArticlesManager = flight.component(function () {

this.defaultAttrs({
addSelector: '.js-article-add',
articleTpl: '<article class="js-article-add">Add element</article>'
});

this.addArticle = function () {
this.$node.append(this.attr.articleTpl);
};

this.after('initialize', function () {
this.on('click', {
addSelector: this.addArticle
});
});
});

ArticlesManager.attachTo('.js-articles');

关于javascript - 使用 Twitter Flight 将组件附加到动态创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23782056/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com