素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

liveイベント

jQueryでサポートされたliveなイベントがどういう風に実現されているのか調べた。かなり複雑だったので詳細は追わなかったが、このようにしているようだ。

var live = function (selector, type, fun) {
  document.addEventListener(
    type,
    function (e) {
      var elem = e.target;
      var isMatch = Array.prototype.some.call(
        document.querySelectorAll(selector),
        elem.isSameNode,
        elem
      );
      if (isMatch) {
        if (!fun.call(elem)) e.preventDefault();
      }
    },
    false
  );
};

live('body a', 'click', function () {
  console.log(this);
  return false;
});