簡體   English   中英

d3 contextmenu不觸發

[英]d3 contextmenu not firing

我只是在我的d3腳本中添加了bootstrap和jquery。 它主要是工作,但我注意到我不再獲得右鍵單擊/上下文菜單事件。 我的設置代碼如下所示:

this.svg_canvas = d3.select("#" + this.container_id)
  .append("svg")
  .attr("width", this.width)
  .attr("height", this.height)
  .on("click", this._selectNodes.bind(this))
  .on("mousedown", this._handleMouseDown.bind(this))
  .on("contextmenu", function(data, index) { graph_view._showContextMenu(data, index); })
  .call(this.zoom_behavior.bind(this))
;

值得一提的是,所有其他手勢(單擊,鼠標按下和縮放)似乎都可以正常工作。

有關於何處查看或如何調試此操作的任何想法?

我擔心這不是一個真正的答案,但是既然有人提出這個問題,我應該告訴他們我發現了什么...

我將調試語句放在我的.on('contextmenu')方法中,如下所示:

var svg_canvas = d3.select('#canvas-id')
  .append('svg')
  ...
  .on('contextmenu', function(d) {
      console.log('>>> contextmenu', d);
      handleContextMenu(d);
  })
  .call(zoomBehavior)
;

...而且我注意到它正在調用我的handleContextMenu(),但我的菜單沒有出現。 我花了一段時間才意識到我已經注釋掉了生成菜單的HTML,但之后修復很簡單。

令我困惑的是,d3沒有在這一行引起錯誤:

var context_menu = d3.select('#context-menu')
    .on('mouseup', ...)

...即使DOM中沒有#context-menu id。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM