我正在使用Google maps API版本3.我希望我的双击事件处理程序能够按如下方式运行:
google.maps.event.addListener(map, 'dblclick', function(e) {
if (/* ctrl is pressed */) {
doSomething(e)
} else {
doSomethingElse(e)
}
});
它看起来事件处理程序只提供一个MouseEvent,它不包含有关键盘状态的信息。我需要LatLng信息,所以我怀疑我可以使用JQuery的事件处理。
我在这里运气不好吗?
答案 0 :(得分:5)
您可以只缓存控制键状态
var ctrlPressed = false;
function cacheIt(event) {
ctrlPressed = event.ctrlKey;
}
document.onkeydown = cacheIt;
document.onkeyup = cacheIt;
现在,ctrlPressed
应始终反映控制键是否已关闭。
答案 1 :(得分:2)
当缓存按键时,我总是将一个函数绑定到window对象的blur事件,该事件清除所有缓存的按键。否则,如果窗口失去焦点,则会出现卡住的问题。
以下是使用jQuery的示例:
$(window).blur( function () {
// Clear cached key presses here
})