Soy un programador de JS y he estado experimentando mucho con jQuery, pero me he topado con un par de aspectos desconcertantes.
Siento que la gente usa jQuery para mucho más de lo necesario. Realmente solo quiero saber por qué elegir jQuery puede ser mejor que usar solo JS puro.
Sé que tiene sentido para webfx como animate y fades, pero para cosas como agregar detectores de eventos, parece igual de fácil de usar.
obj = document.getElementByID(_ID_); obj.addEventListener("mousedown"...);Un ejemplo de esto es la respuesta que encontré hoy en StackOverflow sobre cómo realizar una acción para el texto resaltado. Obtener el texto resaltado/seleccionado
En el ejemplo vinculado en la respuesta en http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html
El tipo usa la función de vinculación al documento. ¿Por qué usar bind en lugar de addEventListener? También con jQuery, todo debe incluirse en el método .ready(), ¿cómo es esto mejor que (o por qué elegirlo)?
document.addEventListener('load', function () { ... }, false);Hay otras ocasiones en las que he visto usar jQuery que me desconcertaron, espero que puedan arrojarme algo de luz al respecto.
La gente usa jQuery porque es más simple, más fácil y más poderoso, y porque les ayuda a olvidarse de IE.
Para responder a sus preguntas específicas:
De lo contrario, debe llamar a attachEvent para IE.
Además, el manejo de eventos jQuery tiene una sintaxis más simple y admite eventos en vivo.
jQuery no requiere que coloque todo en un controlador ready ; en realidad es mejor mover su código al final de la página y ejecutarlo inmediatamente.
A diferencia document.addEventListener('load', ...) , el evento ready de jQuery no esperará a que se carguen las imágenes.
Además, funciona en IE y aún ejecutará su código incluso si el documento ya está cargado.
Bueno, on() es bastante útil porque addEventListener() solo es compatible desde Internet Explorer 9 en adelante.
Lo contrario es cierto, por ejemplo, para los eventos mouseenter y mouseleave : solo son compatibles con IE (hasta ahora) y jQuery los emula en otros navegadores.
La principal razón para mí es la compatibilidad entre navegadores, especialmente con el manejo de eventos.