我需要在我的
backbone.js
视图中绑定两个事件,以切换菜单。我想法是,如果点击id为#toggler
的按钮,则菜单出现,而单击#menu
元素之外的任何内容都将隐藏菜单。
不幸的是,我无法使用backbone的事件绑定使得outsideMenuHandler()
仅在我单击#menu
元素之外的地方才被调用。
我应该做出哪些改变才能使这个工作?
以下是我在backbone.js中所做的,但没有达到预期效果:
myView = Backbone.View.extend({
events: {
'click #menu': 'insideMenuHandler',
'click': 'outsideMenuHandler'
}
insideMenuHandler: function(e) {}, // Called when clicking #menu
outsideMenuHandler: function(e) {} // Called on every click both on and off #menu
}
仅供参考,以下是我使用仅限于jQuery的解决方案:
$(document).click(function(event) {
if ( $(event.target).closest('#menu').get(0) == null ) {
$("#menu").slideUp();
}
});
outsideMenuHandler
返回false
。如果在执行逻辑(隐藏我的菜单)后让我的outsideMenuHandler
返回true
,那么我会遇到麻烦吗? - Industrialbody, html
绑定中调用两次outsideMenuHandler
,但这可能不是问题。你可能只需要将outsideMenuHandler
绑定到html
上,但你需要进行浏览器检查以确保它在所有你关心的浏览器中都能正常工作。 - mu is too short