2012-02-21 130 views
1

我有一个画布,我叠加在谷歌地图窗口小部件上(使用gwt gmaps包装)。所有的鼠标事件,比如双击和拖拽,当然都会首先触及画布,并且需要将它们沉入底下的地图API中。事件通过画布

问题是,有没有一种方法可以将特定的鼠标事件直接放到地图窗口小部件上,而无需编写调用API特定操作的事件处理程序。基本上会使画布表现得像它不存在的东西。我知道,我可能最终实施所有的事件,但认为这个问题值得探讨。

回答

1

使用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调用。

如果您只需要鼠标事件的子集来影响叠加的画布,则可能需要将由该小部件捕获的事件传递到画布。

+0

非常感谢Xenethyl – giscope 2012-02-22 18:56:32