两个视图中的Backbone Drop事件侦听器

Backbone Drop Event Listener Amongst Two Views

本文关键字:Backbone Drop 事件 侦听器 视图 两个      更新时间:2023-09-26

我的应用程序有一个带有两个面板的面板。每个面板都是一个不同的骨干视图,用于渲染相应面板中的模板。视图由骨干路由器实例化。我需要在某个位置放置一个Drop Event Listener,以检测何时将一个视图中的<li>元素拖放到第二个视图中。但是,我不知道该把这位听众放在哪里。。。

•当我将事件放在"drop #drop-zone": "handleDrop" 等任一视图中时,我无法启动该事件

•在视图实例化后,将事件侦听器放在路由器中也不起作用。

•我的下一个想法是将Drop Event Listener放入用于dragStart的Listener中,但我不确定这是否是最佳途径。

监听Drop事件的合适地点在哪里?

// app.js, main.js, router.js, etc.
window.event_bus = {};
_.extend(object, Backbone.Events);
event_bus.on("drop", function(target) {
    // do something with target
});
// drop-zone-one-view.js
"drop #drop-zone-one": function () { event_bus.trigger('drop', 'drop-zone-one') }
// drop-zone-two-view.js
"drop #drop-zone-two": function () { event_bus.trigger('drop', 'drop-zone-two') }