您好 我想知道如何更改我的鼠标事件 因为我想X.Caption只有在我右击它时才会激活。 非常感谢
答案 0 :(得分:0)
如果我是对的(其他贡献者,不要害怕纠正我),您可能需要根据需要编辑XTK的内部。 XTK在X.event.js
中定义了“控件”,用于从Google Closure Library获取的HoverEvent
和PanEvent
等事件。您可以更多地查看Google Closure库,因为我尚未对其进行全面审核,但X.caption
主要来自Goog.ui.Tooltip
,可以与来自Goog.ui.Popup
,{{1}的事件一起使用}和Goog.ui.PopupBase
。您可以尝试将Goog.events
添加到您的Javascript中,并定义您自己的点击事件或与之相关的内容,并查看Google Closure Library。
如果我刚刚在上面的小段落中写的不完全正确或类似的东西,当然有基本的Javascript DOM事件点击。我不太确定它们如何与XTK一起使用,因为XTK使用WebGL进行渲染。您可以在http://www.w3schools.com/jsref/dom_obj_event.asp查看基本活动。如果您找到适合自己的解决方案,我们非常欢迎您将其贡献给XTK。
答案 1 :(得分:0)
我觉得有太多方法没有?更改xtk源代码并编译您自己的版本或类似的东西:
window.onload = function() {
myrenderer.config.HOVERING_ENABLED = false; // disabling show caption on mousehover
var mouse_x, mouse_y;
myrenderer.interactor.onMouseMove = function(event) {
mouse_x = event.offsetX;
mouse_y = event.offsetY;
}
myrenderer.interactor.onMouseDown = function(left,middle, right) {
if (right) {
var picked_id = myrenderer.pick(mouse_x, mouse_y);
if (picked_id==-1) throw new Error("No object");
var picked_object = myrenderer.get(picked_id);
var mycontainer = myrenderer.container;
var caption = new X.caption(mycontainer,mycontainer.offsetLeft + mouse_x + 10, mycontainer.offsetTop + mouse_y + 10,myrenderer.interactor);
caption.setHtml(picked_object.caption);
// use settimeout or something else to destroy the caption
}
}
}
答案 2 :(得分:0)
以下JSFiddle显示了如何做到这一点。要实际显示工具提示等,您可以使用任何JS库,如jQuery UI。