[英]Add onRightClick to JavaScript lib Hypertree
我正在使用Hypertree圖表工作(repo就在這里 ),我想從JavaScript InfoVis Toolkit中使用它 。 問題如下:我將特定事件添加到Hypertree,它們是onClick
和onRightClick
。
Events: {
enable: true,
onClick: function(node, eventInfo, e) {
ht.controller.onComplete();
},
onRightClick: function(node, eventInfo, e) {
ht.controller.onComplete();
},
},
然后我簡單地將veent處理程序附加到Hypertree標簽上,只需稍微修改一下演示代碼 :
//Attach event handlers and add text to the
//labels. This method is only triggered on label
//creation
onCreateLabel: function(domElement, node){
domElement.innerHTML = node.name;
$jit.util.addEvent(domElement, 'click', function () {
ht.onRightClick(node.id, {
onComplete: function() {
ht.controller.onComplete();
}
});
});
$jit.util.addEvent(domElement, 'rclick', function () {
ht.onClick(node.id, {
onComplete: function() {
ht.controller.onComplete();
}
});
});
},
這很直截了當。 Hypertree事件的文檔位於Options.Events.js中 。 現在我加載頁面......我有left.clicks。 但沒有正確的點擊...我想讓RightClicks移動圖形和onClicks來打開DOM Element節點的鏈接。 有人可以給我一個指針嗎?
最好的,馬呂斯
我在“事件”部分中可以看到的唯一錯誤是onRightClick背后的尾隨逗號。 如果你使用IE> 8,它確實不應該影響代碼,但它值得一試。
好的,這是我認為您的解決方案不起作用的答案。
$jit.util.addEvent(domElement, 'rclick', function ()
沒有'rclick'這樣的jquery事件。
通常使用jquery,您可以使用以下方法檢測右鍵單擊 :
$('#element').mousedown(function(event) {
if (event.which === 3) {
alert('Right mouse button pressed');
}
});
因此,在您的示例中,您將使用“mousedown”而不是“rclick”。 但是,查看addEvent的文檔:
$jit.util.addEvent(elem, 'click', function(){ alert('hello'); });
該示例似乎表明無法將事件對象傳遞給addEvent的函數參數,這意味着無法檢測到單擊鼠標右鍵。
可能值得將您的問題直接發布到InfoVis的作者,因為我也有興趣看看是否可以連接鼠標右鍵。
$ jit.util.addEvent(obj,type,fn)是obj.addEventListener(type,fn,false)的快捷方式。 所以你試圖綁定到'onrclick'事件。 但是javascript中沒有這樣的事件。 要檢測右鍵單擊,您只需將'rclick'替換為'mouseup',在回調中,您應該檢查按鈕是否正確。 這是代碼:
$jit.util.addEvent(domElement, 'mouseup', function (event) {
// detecting right button
if (event.button != 2) {
return;
}
ht.onClick(node.id, {
onComplete: function() {
ht.controller.onComplete();
}
});
});
此外,您不需要為此使用Options.Events.js,因此您可以刪除該代碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.