gpt4 book ai didi

javascript - 主干将一个 View 事件复制到另一个

转载 作者:行者123 更新时间:2023-11-30 13:12:23 24 4
gpt4 key购买 nike

我在 Backbone 中有这个 View ,它根据用户的操作改变它的事件。

所以我有三个 View ,都已经初始化了。

var view1 = new MainView({el : '#view1'});

var view2 = new ProductsView({el : '#prodcuts'});

var view3 = new StoresView({el : '#stores'});

现在我想做的是将事件从一个 View 复制到另一个 View ,然后更新 View el。我试过:

if($option == 'products') {
view1.events = view2.events
$("div[data-role='content']", view1.el).html(content);
} else {
view1.events = view3.events
$("div[data-role='content']", view1.el).html(content);
}

问题是,即使现在内容是相同的,并且那里的元素与事件相对应,但事件不再触发。为什么会这样,我该如何解决?

最佳答案

您需要调用 delegateEvents方法。

例如类似下面的内容(给定您提供的代码)。

if($option == 'products') {
view1.delegateEvents(view2.events)
$("div[data-role='content']", view1.el).html(content);
} else {
view1.delegateEvents(view3.events);
$("div[data-role='content']", view1.el).html(content);
}

另请注意,要删除事件,您可以使用 undelegateEvents() 方法。

关于javascript - 主干将一个 View 事件复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420223/

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