JQuery Live () в простом JavaScript? - PullRequest
       8

JQuery Live () в простом JavaScript?

6 голосов
/ 10 декабря 2010

Я пытаюсь выполнить то, что может делать функция jQuery live (), но в простом JavaScript.Может кто-нибудь здесь помочь с этим?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 10 декабря 2010

Примерно так:

myLive("div", "click", function() { ... }); 

var liveArray = [];

function myLive(selector, type, handler) {
    liveArray.push([selector, type, handler]);
}

// this handler should fire for any event on the page, and should be attached
// to the document node
function documentAnyEvent(e) {
    var e = e || window.event;
    var target = e.target || e.srcElement;
    for (var i = 0; i < liveArray.length; i++) {
        if (target mathes the selector AND e.type matches the type) {
            // fire the handler liveArray[i][2]
        }
    }
}
2 голосов
/ 10 декабря 2010

Вот небольшой пример запуска

document.onclick = function(evt){

    evt =  evt  ||  window.event;
    var element = evt.target  ||  evt.srcElement;

};

, где бы вы ни щелкнули, вы получите ссылку на элемент, получивший щелчок.

Более полезным, однако, в реальном сценарии будетиспользовать метод attachEvent для IE или addEventListener для остальных.

...