No se trata de jQuery, sino de cómo jQuery implementa dicho comportamiento.JavaScript simple para imitar el comportamiento de jQuery al usar esto en controladores de eventos
En jQuery se puede hacer esto:
$('#some_link_id').click(function()
{
alert(this.tagName); //displays 'A'
})
podría alguien explicar en términos generales (sin necesidad de escribir código) ¿cómo se obtienen a pasar elments persona que llama html del evento (un enlace en este ejemplo específico) en el esta palabra clave?
Obviamente traté de mirar primero en el código jQuery, pero no pude entender una línea.
Gracias!
ACTUALIZACIÓN: de acuerdo a la respuesta Anurag he decidido publicar algo de código en este punto, ya que parece más fácil de código de lo que pensaba:
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
}
y ahora con una simple llamada imitamos jQuery el comportamiento de utilizar esto en eventos manipuladores
AddEvent(document.getElementById('some_id'), 'click', function()
{
alert(this.tagName); //shows 'A', and it's cross browser: works both IE and FF
});
¿cree que hay algún error o algo que no he entendido que toman la cosa en todo un muy sup ¿Manera erficial?
FF se ve bien, no he escrito el manejo de eventos específicos de IE en mucho tiempo, pero si funciona, ¡todo está bien! :) – Anurag