我正在尝试重现谷歌地图,addListener
除了用于点击、按键等的 jQuery 侦听器。
在 Moogle 地图中,您可以.event.addListener(map, 'click', function()...
使用“拖动”、“鼠标悬停”等编写或替换“点击”。对于 jQuery,我看到与“点击”、“按键”等类似的内容。
我被困在您可以将触发器类型作为变量传递的地步。声明单独的包装监听器很简单,比如
function addClickListener(id, fn) {
$(id).click(function() { fn(event); });
}
// and
function addKeyPressListener(id, fn) {
$(id).keypress(function() { fn(event); });
}
我要找的东西坏了,如下所示。我不知道谷歌如何传递一个像“点击”这样的字符串并使那个调用成为一个函数。也许与eval
?不寒而栗
function addListener(id, type, fn) {
typeFn = $.type;
$(id).typeFn(function() { fn(event); });
}
最后:http: //jsfiddle.net/YCVVL/