6

以下のように、クリックおよびダブルクリックイベントを管理できます。

events: {
    "click .tree-toggler": "toggletree",
    "dblclick .doubleclick" : "doubleclickFunc"
  },

 toggletree: function(e){
     //code
  },
  doubleclickFunc : function(e){
      //code
  }

しかし、右クリックイベントとロングクリックイベントを管理したいです。それらをどのように処理しますか?

4

2 に答える 2

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);
}

長いクリック、つまりクリックの持続時間の測定には、 と を使用mouseupmousedownます。

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);
  }
}

上記の右クリックとクリック時間のデモンストレーションを行うフィドルを作成しました。contextmenu

于 2013-05-27T12:14:27.943 に答える