我们可以管理点击和双击事件,如下所示:
events: {
"click .tree-toggler": "toggletree",
"dblclick .doubleclick" : "doubleclickFunc"
},
toggletree: function(e){
//code
},
doubleclickFunc : function(e){
//code
}
但我想管理右键单击事件和长按事件。如何处理它们?
答案 0 :(得分:12)
我不知道“长按”事件(我甚至不知道有一个,也找不到一些文档),但无论如何。 Backbone使用jQuery的on
方法将您的事件绑定到DOM。这意味着适用于on
的任何内容都适用于Backbone.View.events
(不幸的是,您指定的选择器有一些限制,但除此之外)。
尝试:
events: {
contextmenu: 'onRightClick'
},
onRightClick: function() {
alert('it works!');
}
答案 1 :(得分:4)
您可以使用contextmenu
事件检测右键点击,如前面的答案中所述。另一种检测鼠标右键点击的方法是jquery的event.which:
clickTree: function(e) {
if (event.which === 3) {
// handle right clicks
this.showtreemenu(e);
return;
}
// handle left clicks
this.toggletree(e);
}
对于长时间点击,即测量点击持续时间,请使用mouseup
和mousedown
:
events: {
'mousedown .measure-click-duration': 'clickStarted',
'mouseup .measure-click-duration': 'clickEnded'
},
clickStarted: function(e) {
this.clickStartTime = e.timeStamp;
},
clickEnded: function(e) {
var clickDuration = e.timeStamp - this.clickStarted;
if (clickDuration > 1000) {
this.longClick(e);
}
}
我为{+ 3}}显示了contextmenu
右键点击和上述点击持续时间。