独特的主干事件总线,也可以共享全局事件
Unique backbone event buses that can also share global events
我想要多个唯一的事件总线,它们也可以监听全局事件。以下是我希望看到的输出:
global triggered on a by master
global triggered on b by master
search triggered on a by a
search triggered on b by b
这是我的代码:
var master = Backbone.Events;
// when this is attached a listens to b and b listens to a
// when this isn't attached no one listens to the global event
// master.on('fake', function(){});
var a = $.extend({}, master);
var b = $.extend({}, master);
function respond(bus, event, by) {
$('#log').append('<div><code>' + event + '</code> triggered on <code>' + bus + '</code> by <code>' + by + '</code></div>');
}
a.on('global', function (by) { respond('a', 'global', by); });
b.on('global', function (by) { respond('b', 'global', by); });
a.on('search', function (by) { respond('a', 'search', by); });
b.on('search', function (by) { respond('b', 'search', by); });
master.trigger('global', 'master');
a.trigger('search', 'a');
b.trigger('search', 'b');
这是一把没有master.on
的小提琴,还有一把有master.on
的小提琴<em。>
之所以会发生这种情况,是因为您从同一个主对象进行扩展,因此您在所有距离上注册事件。
我提出了基于两个不同渠道的解决方案:
var master = Backbone.Events;
var Bus = (function(){
function Bus(){
this.vent = {};
_.extend(this.vent, Backbone.Events);
this.globalVent = master;
}
return Bus;
})();
var a = new Bus();
var b = new Bus();
function respond(bus, event, by) {
$('#log').append('<div><code>' + event + '</code> triggered on <code>' + bus + '</code> by <code>' + by + '</code></div>');
}
a.globalVent.on('global', function (by) {
respond('a', 'global', by);
});
b.globalVent.on('global', function (by) {
respond('b', 'global', by);
});
a.vent.on('search', function (by) {
respond('a', 'search', by);
});
b.vent.on('search', function (by) {
respond('b', 'search', by);
});
master.trigger('global', 'master');
a.vent.trigger('search', 'a');
b.vent.trigger('search', 'b');
这是一个工作小提琴
相关文章:
- 即使光标位于屏幕边缘,也可以跟踪鼠标速度
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 在下拉列表中的页面加载中已经选择了一个选项,该选项也可以更改
- javascript数组既可以是数字数组,也可以是关联数组
- 我需要一个注册按钮,它可以将数据发送到mySQL服务器,也可以在单击时重定向
- 在更改时,如果没有使用jquery更改,也可以删除对select元素的关注
- jQuery聚焦文本框并转到末尾,但也可以设置光标的位置,以便用户可以看到它
- regex某个字符可以存在也可以不存在,但之后什么都没有
- 为什么在文件输入上触发点击事件也会在表单上触发提交事件
- 当我禁用window.onwheel事件时,它会使Firefox中的所有object.onwheele事件也被禁用
- 即使使用stopPropagation,事件也会冒泡到父级
- 即使它在 Chrome 浏览器上不起作用,也可以单击
- 即使在从DOM中删除后,也可以保存jQuery对象
- 我无法获得热图.js即使是简单的热图也可以工作
- 即使遵循谷歌的开发者教程,Google Analytics事件也不起作用
- 在jquery中使用.on时需要帮助,以便它也可以处理动态数据
- JQUERY - .html() 也可以查看 php
- 主干视图中的事件,可以在应用程序中多次添加
- indexof 在变量为空或指定值之前不会更改,即使它应该检查每个 KeyUp 事件也是如此
- 独特的主干事件总线,也可以共享全局事件