Backbone.js 将多个函数绑定到一个视图';s点击事件
我正在尝试将几个函数绑定到一个单击事件。以下是我得到的:Backbone.js 将多个函数绑定到一个视图';s点击事件,backbone.js,marionette,Backbone.js,Marionette,我正在尝试将几个函数绑定到一个单击事件。以下是我得到的: var Foreground = Backbone.Marionette.Layout.extend({ el: $('body'), events: { 'click': 'tryResetContextMenu onClickDeselectCollections' }, // Whenever the user clicks on any part of the UI that
var Foreground = Backbone.Marionette.Layout.extend({
el: $('body'),
events: {
'click': 'tryResetContextMenu onClickDeselectCollections'
},
// Whenever the user clicks on any part of the UI that isn't a multi-select item, deselect the multi-select items.
onClickDeselectCollections: function (event) {
console.log("deselect collections");
var isMultiSelectItem = $(event.target).hasClass('multiSelectItem');
var isChildMultiSelectItem = $(event.target).closest('.multiSelectItem').length > 0;
if (!isMultiSelectItem && !isChildMultiSelectItem) {
this.deselectCollections();
}
},
// If a click occurs and the default isn't prevented, reset the context menu groups to hide it.
// Child elements will call event.preventDefault() to indicate that they have handled the context menu.
tryResetContextMenu: function (event) {
console.log("resetting context menu items");
if (event.isDefaultPrevented()) {
// TODO: I don't think this is the proper way to do this. I should be showing a new view with top/left defined?
this.contextMenu.currentView.show({
top: event.pageY,
// Show the element just slightly offset as to not break onHover effects.
left: event.pageX + 1
});
} else {
// Clearing the groups of the context menu will cause it to become hidden.
ContextMenuItems.reset();
}
}
});
这两种功能都不会启动,但单独运行时效果良好。是否支持此功能?请执行以下操作:
events: {
'click': function(event) {
this.tryResetContextMenu(event);
this.onClickDeselectCollections(event);
}
},
这似乎意味着仅使用一个字符串就可以支持它,不过:可能在
木偶.modelEvents
中,但当您使用事件时:
您使用的是主干.View.events
和主干不支持事件回调中的多个函数。