[英]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.