2010-12-09 1 views
6

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

Спасибо!

+5

Вы пробовали чтение исходного кода JQuery? – 2010-12-09 23:56:39

ответ

2

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

document.onclick = function(evt){ 

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

}; 

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

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

2

Что-то вроде этого:

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] 
     } 
    } 
}