Javascript simples para imitar o comportamento jQuery de usá-lo em manipuladores de eventos
Esta não é uma pergunta sobre o jQuery, mas sobre como o jQuery implementa esse comportamento.
No jQuery, você pode fazer isso:
$('#some_link_id').click(function()
{
alert(this.tagName); //displays 'A'
})
alguém poderia explicar em termos gerais (não precisa escrever código) como eles conseguem transmitir os elementos html do chamador do evento (um link neste exemplo específico) para o diretórioesta palavra-chave?
Obviamente, tentei procurar o primeiro no código jQuery, mas não conseguia entender uma linha.
Obrigado!
ATUALIZAR: de acordo com a resposta Anurag, decidi postar algum código neste momento, porque parece mais fácil codificar do que eu pensava:
function AddEvent(html_element, event_name, event_function)
{
if(html_element.attachEvent) //IE
html_element.attachEvent("on" + event_name, function() {event_function.call(html_element);});
else if(html_element.addEventListener) //FF
html_element.addEventListener(event_name, event_function, false); //don't need the 'call' trick because in FF everything already works in the right way
}
e agora, com uma chamada simples, imitamos o comportamento jQuery de usá-lo em manipuladores de eventos
AddEvent(document.getElementById('some_id'), 'click', function()
{
alert(this.tagName); //shows 'A', and it's cross browser: works both IE and FF
});
Você acha que há algum erro ou algo que eu entendi errado, levando tudo de uma maneira muito superficial ???