1
我有一个画布,我叠加在谷歌地图窗口小部件上(使用gwt gmaps包装)。所有的鼠标事件,比如双击和拖拽,当然都会首先触及画布,并且需要将它们沉入底下的地图API中。事件通过画布
问题是,有没有一种方法可以将特定的鼠标事件直接放到地图窗口小部件上,而无需编写调用API特定操作的事件处理程序。基本上会使画布表现得像它不存在的东西。我知道,我可能最终实施所有的事件,但认为这个问题值得探讨。
我有一个画布,我叠加在谷歌地图窗口小部件上(使用gwt gmaps包装)。所有的鼠标事件,比如双击和拖拽,当然都会首先触及画布,并且需要将它们沉入底下的地图API中。事件通过画布
问题是,有没有一种方法可以将特定的鼠标事件直接放到地图窗口小部件上,而无需编写调用API特定操作的事件处理程序。基本上会使画布表现得像它不存在的东西。我知道,我可能最终实施所有的事件,但认为这个问题值得探讨。
使用jQuery,这些方针的东西应该为你做的伎俩:
// Your custom event handler function for the canvas.
function event_handler(e) {
// Do stuff.
// Pass the event to your gmaps parent container.
$("#gwt_gmaps_parent_container").trigger(e);
}
// Bind your custom event handler to the canvas.
$("#canvas").bind("click", event_handler);
根据您的事件传播的设置和如何谷歌地图与分层交易(我从来没有与它之前的工作),你可能需要在小部件本身上触发事件。
编辑:此方法不能处理更复杂的交互,如拖放或滚轮缩放。不幸的是,您可能必须为这些事件编写自定义处理程序以直接进行API调用。
如果您只需要鼠标事件的子集来影响叠加的画布,则可能需要将由该小部件捕获的事件传递到画布。
非常感谢Xenethyl – giscope 2012-02-22 18:56:32