0

addListenerクリック、キープレスなどのjQueryリスナーを除いて、Googleマップを再現しようとしています.

.event.addListener(map, 'click', function()...Moogle Maps では、 '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); });
  }

以下に示すように、私が探しているのは壊れています。Google が「クリック」のような文字列を渡して関数を呼び出す方法がわかりません。たぶんeval身震い

  function addListener(id, type, fn) {
    typeFn = $.type;
    $(id).typeFn(function() { fn(event); });
  }

最後に: http://jsfiddle.net/YCVVL/

4

1 に答える 1

2

ここで「角括弧表記」を使用できると思います:

function addListener(id, type, fn) {
    $(id)[type](function() { fn(event); }); //< here
}

または、次のいずれかを使用します。

$(id).on(type, function() { fn(event); });
$(id).bind(type, function() { fn(event); });
于 2012-04-14T19:01:37.713 に答える