2011-03-21 9 views
27

Soy un programador de JS y he estado experimentando mucho con jQuery, pero me he topado con un par de aspectos desconcertantes.¿Por qué las personas usan jQuery para operaciones básicas?

Siento que la gente usa jQuery por 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 lo animado y se desvanece, sino para cosas como la adición de detectores de eventos parece tan fácil de usar

obj = document.getElementByID(_ID_); 
obj.addEventListener("mousedown"...); 

Un ejemplo de esto es la respuesta que encontré en StackOverflow el día de hoy acerca de realizar una acción para el texto resaltado. Get the Highlighted/Selected text

En el ejemplo enlazado en la respuesta al http://mark.koli.ch/2009/09/use-javascript-and-jquery-to-get-user-selected-text.html

El hombre utiliza la función de enlace al documento. ¿Por qué usar bind en lugar de addEventListener? También con jQuery todo tiene que ser incluido en el método ready() ¿cómo es esto mejor que (o por qué lo eligen más)

document.addEventListener('load', function() { ... }, false); 

Hay otras veces que he visto jQuery usado que me desconcertó, espero que los muchachos pueden aclararlo un poco.

+1

Pure jquery no es bueno. Se trata del rendimiento frente al tiempo de desarrollo. Use jquery solo si realmente lo necesita y el rendimiento no importa. He visto personas que usaban $ (this) .attr ('id') en lugar de this.id. Puro javascript lidera el rendimiento pero menos compatibilidad con el navegador. –

Respuesta

49

La gente usa jQuery porque es más simple, más fácil y más potente, y porque les ayuda a olvidarse de IE.

para responder a sus preguntas específicas:

  1. De lo contrario, es necesario llamar attachEvent para IE.
    Además, el manejo de eventos jQuery tiene una sintaxis más simple y admite eventos en vivo.

  2. jQuery no requiere que ponga todo en un controlador ready; en realidad, es mejor mover el código al final de la página y ejecutarlo inmediatamente.
    A diferencia de 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.

+0

$ ('ventana'). Listo() permite cargar imágenes ... Creo que – austinbv

+0

@zobgib: No; eso es '.load'. http://api.jquery.com/load-event – SLaks

27

Bueno, on() es bastante útil porque addEventListener() es compatible únicamente desde Internet Explorer 9 en adelante.

Lo contrario ocurre para p. los eventos mouseenter y mouseleave: esos solo son compatibles con IE (hasta el momento), y jQuery los emula en otros navegadores.

+1

+1 para esos eventos de mouse – StuperUser

14

La razón más importante para mí es la compatibilidad de varios navegadores, especialmente con el manejo de eventos.

6

La idea detrás de jquery es "Escribir menos, hacer más".

Con ejemplos triviales, la diferencia en la cantidad de código escrito es pequeña, pero a medida que comienzas a escribir cosas más complicadas, el poder de jquery se hace evidente.

También hay muchas cosas cruzadas en el navegador incorporadas en jQuery, lo que significa que debe preocuparse menos por el código específico del navegador.

2

Tengo más confianza en que jQuery es independiente de la plataforma que en el mero JavaScript. Por esa razón, estoy tentado de usar jQuery tanto como pueda. Y creo que jQuery es una plataforma suficientemente buena y estable como para abstraer algunas de las complicaciones específicas del navegador de esa manera.

1

porque es compatible cruzada y está bien soportado (piense en las solicitudes XHR) ... pero en algún proyecto sería mejor usar MooTools en lugar de JQuery por falta de un método de "activos".

3

Porque los desarrolladores de jQuery son mucho más inteligentes que yo, y a menudo implementarán un algoritmo más eficiente para hacer lo que estoy tratando de hacer.

Cuestiones relacionadas