Javascript 创建一个通用jQuery“;addListener";

Javascript 创建一个通用jQuery“;addListener";,javascript,jquery,Javascript,Jquery,我试图复制Google地图的addListener,除了用于点击、按键等的jQuery监听器 在Moogle映射中,您可以编写.event.addListener(映射,'click',function()…,或者将'click'替换为'drag','mouseover',等等。对于jQuery,我看到了一个与'click','keypress'等类似的例子 我被困在了可以将触发器类型作为变量传递的地方 function addClickListener(id, fn) { $(id

我试图复制Google地图的addListener,除了用于点击、按键等的jQuery监听器

在Moogle映射中,您可以编写
.event.addListener(映射,'click',function()…
,或者将'click'替换为'drag','mouseover',等等。对于jQuery,我看到了一个与'click','keypress'等类似的例子

我被困在了可以将触发器类型作为变量传递的地方

  function addClickListener(id, fn) {
    $(id).click(function() { fn(event); });
  }      

  // and

  function addKeyPressListener(id, fn) {
    $(id).keypress(function() { fn(event); });
  }
我正在寻找的是坏的,如下所示。我不知道谷歌如何传递一个像“click”这样的字符串并将其调用为函数。可能是使用
eval
?抖动

最后:

我想你可以在这里使用“”:


你看过吗?这确实使我的问题成为一个毫无意义的练习:(哇,非常聪明。我无法想象它能代替函数名。这正是我想要的!谢谢!
  function addListener(id, type, fn) {
    typeFn = $.type;
    $(id).typeFn(function() { fn(event); });
  }
function addListener(id, type, fn) {
    $(id)[type](function() { fn(event); }); //< here
}
$(id).on(type, function() { fn(event); });
$(id).bind(type, function() { fn(event); });