Archivo de la categoría: jQuery

Twitter Bootstrap Acordeón: preservar el estado luego de refrescar la página o navegar de regreso.

Cuando usas Bootstrap y usas el componente llamado «Acordeón» (accordion en inglés) si en el panel pones enlaces a otras páginas y luego regresas, el acordeón (acordión para los amigos) no recuerda qué panel estaba «expandido» o en dónde te quedaste, simplemente carga como si fuera la primera vez que lo vas a usar.

En el sitio web de StackOverflow hay varias respuestas:

http://stackoverflow.com/questions/12733238/retain-twitter-bootstrap-collapse-state-on-page-refresh-navigation

La que me parece la mejor en mi caso es la de Ravimallya. Funciona con Bootstrap versión 3.x.x.

La idea de la solución es guardar en una «cookie» el ID del elemento que quieres que permanezca abierto cuando regreses de navegar o porque refrescaste la página.

El script en JavaScript y jQuery hace lo siguiente:

  1. Cuando la página está lista (ready) se busca el cookie «activeAccordionGroup» y si lo encuentra hace una búsqueda del ID que está grabado en el cookie y le quita a todos los paneles la clase «in» y al panel con el ID del cookie le agrega la clase «in».
  2. Cuando le damos clic a un panel para expandirlo se produce un evento «shown.bs.collapse» y en ese evento grabamos en la cookie el ID del panel que tenga la clase «.in».
  3. Cuando se contrae o se cierra un panel se produce un evento «hidden.bs.collapse» y en ese evento borramos la cookie.

HTML.

<div class="panel-group" id="accordion">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">Collapsible Group
                    Item #1 </a>
            </h4>
        </div>
        <div id="collapseOne" class="panel-collapse collapse in">
            <div class="panel-body">
                Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson
                ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food
                truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put
                a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim
                keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
                Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table,
                raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus
                labore sustainable VHS.
            </div>
        </div>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">Collapsible Group
                    Item #2 </a>
            </h4>
        </div>
        <div id="collapseTwo" class="panel-collapse collapse">
            <div class="panel-body">
                Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson
                ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food
                truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put
                a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim
                keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
                Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table,
                raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus
                labore sustainable VHS.
            </div>
        </div>
    </div>
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">Collapsible
                    Group Item #3 </a>
            </h4>
        </div>
        <div id="collapseThree" class="panel-collapse collapse">
            <div class="panel-body">
                Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson
                ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food
                truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put
                a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim
                keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
                Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table,
                raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus
                labore sustainable VHS.
            </div>
        </div>
    </div>
</div>

JavaScript.

$(document).ready(function () {
        //when a group is shown, save it as the active accordion group
        $("#accordion").on('shown.bs.collapse', function () {
            var active = $("#accordion .in").attr('id');
            $.cookie('activeAccordionGroup', active);
          //  alert(active);
        });
        $("#accordion").on('hidden.bs.collapse', function () {
            $.removeCookie('activeAccordionGroup');
        });
        var last = $.cookie('activeAccordionGroup');
        if (last != null) {
            //remove default collapse settings
            $("#accordion .panel-collapse").removeClass('in');
            //show the account_last visible group
            $("#" + last).addClass("in");
        }
    });

Pero eso no es todo…

Tienes que usar un plugin jQuery llamado jquery-cookie creado por carhartl. Permite manipular cookies de esta manera:

$.cookie('nombre-cookie', valor);
$.removeCookie('nombre-cookie');

Descárgalo aquí:
https://github.com/carhartl/jquery-cookie

Desempaquetar el Zip y buscar el archivo jquery.cookie.js y copiarlo en tu proyecto.

Tienes que incluirlo en tu HTML así:

<script src="/path/to/jquery.cookie.js"></script>

La línea va después de la de jQuery por si acaso, no al revés.

No hagas referencia al archivo en GitHub porque es el archivo es entregado con el MIME text/plain y como tal es bloqueado en Internet Explorer en Windows 7 (porque tiene el MIME incorrecto).

En conclusión: GitHub no es un CDN.

<script src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js"></script>

No usar la línea de arriba, no funciona.

Convertir una tabla en HTML a JSON.

Escenario: Tienes que convertir una tabla en HTML al formato JSON y no tienes acceso a la base de datos que genera la tabla o la tabla es de un tercero. Tampoco quieres digitar los miles de registros a mano.

Hay varias maneras de lograr esto. Una forma es usar JavaScript y jQuery, existen vídeos en Internet que explican esta manera. Otra opción es usar un plugin de jQuery pero estas técnicas no funcionan si la tabla no está correctamente escrita o en inglés no está «well-formed». Puede que el resultado no sea el esperado o salga un error y no obtengas ningún resultado.

Well-formed: significa que las etiquetas abran y cierren, que el anidamiento esté correcto y que los elementos vacíos terminen correctamente).

Ejemplo:

Correcto:

<b>Hola</b>

Incorrecto:

<b><i>Hola</b>

Elementos vacíos correctamente terminados:

<img />, <br />, <hr />

Anidación incorrecta:

<p>Normal <em>emphasized <strong>strong emphasized</em> strong</strong></p>

Volviendo al tema si la tabla HTML no está bien creada usar JavaScript para obtener los valores probablemente no funcione.

En este caso una solución (no la más elegante ni la mejor probablemente) es valerse del navegador para lidiar con la tabla. En otras palabras los navegadores «corrigen» y «pasan por alto» las reglas para un correcto HTML y logran mostrar la tabla (no sé ni como lo logran).

La idea es copiar y pegar desde el navegador la tabla HTML y pasarla a JSON.

Es más fácil decirlo que hacerlo y una forma que he encontrado es valerse de Excel y pegar la tabla HTML allí (claro, es que no pude con Word).

Luego en Excel graba la hoja de cálculo como «valores separados por comas» o CSV.

Finalmente busca un conversor de CSV a JSON en Internet.

En mi caso utilicé está página web: http://www.convertcsv.com/csv-to-json.htm

Subes el archivo con formato CSV y si quieres te pones a jugar con las opciones. En mi caso funcionó a la primera.

Aquí unas imágenes de la página web:

csv2json

 

csv2json2

En la imagen superior pueden ver el resultado la conversión en JSON.

No es una solución muy sofisticada pero hace el truco. Si conocen de una mejor manera de pasar una tabla HTML (mal formada) a JSON favor poner un comentario.

Soporte para navegadores en jQuery 1.12 y siguientes.

Microsoft está acabando el soporte para Windows XP este mes, le estamos dando a la comunidad jQuery un aviso muy temprano sobre los cambios al soporte de navegadores.

Primero que nada, ¡no se asusten! Realmente nada está cambiando con respecto a los navegadores que pueden ejecutar jQuery por al menos 6 meses. Nuestra meta es permitirle a todos en la comunidad de desarrollo web conocer lo que el equipo jQuery intenta hacer el próximo año, para que puedan hacer planes.

¿Qué está cambiando?

No hay fechas firmes pero planeamos lanzar las versiones de núcleo de jQuery 1.12 y 2.2 este año. jQuery 1.13/2.3 serán lanzados en algún momento del 2015.

jQuery 1.12: Este será el último lanzamiento con soporte de Internet Explorer 6 y 7. Desde hoy no habrá más peticiones de características o corrección de errores. Solamente regresiones serias para estos navegadores serán corregidas en lanzamientos de parches (por ejemplo 1.12.1). jQuery 1.13 soporta IE8 como mínimo.

Ambos jQuery 1.12 y 2.2: Éstos serán los últimos lanzamientos que soportarán Opera 12.1x y Safari 5.1. Desde hoy no habrá más peticiones de características o corrección de errores. Solamente regresiones serias para estos navegadores serán corregidas en lanzamientos de parches (por ejemplo 1.12.1, 2.2.1).

Ambos jQuery 1.13 y 2.3: Se quitarán parches y soluciones que son específicos para poder funcionar en navegadores que ya no soportamos, para poder simplificar el  código base.

¿Qué necesitas hacer? Si tus proyecots utilizan un administrador de paquetes que jala la última versión de jQuery, ten en mente que 1.12 a 1.13 o 2.2 a 2.3 reducirá el soporte de navegadores. Podrías querer permanecer en la versión 1.12 o menor si el soporte para navegadores antiguos es requerido. Mira las instrucciones de tu administrador de paquetes para detalles de cómo hacer eso.

El significado de «Soporte».

Definir lo que el «soporte» significa es más difícil de lo que pudieras pensar. Bajo la premisa que «código sin probar es código roto», el equipo del núcleo de jQuery prefiere decir que nosotros soportamos de manera completa un navegador si el proyecto regularmente ejecuta pruebas unitarias contra ese navegador. Las pruebas unitarias aseguran que cada API devuelve un conjunto de resultados de manera consistente en todos los navegadores.

Aún cuando soportamos un navegador, pueden haber errores que no se pueden resolver de manera razonable. Internet Explorer 6 hasta 11 disparan eventos para focus y blur de manera asíncrona y el código requerido para hacerlos parecer síncronos sería considerable. Safari e iOS no soportan el evento «onbeforeunload» el cual es difícil de corregir. Hasta el mes pasado Firefox no respetaba overflow: hidden en un elemento fieldset. Nosotros tratamos de trabajar con los vendedores de navegadores para hacer que estos errores sean corregidos.

En navegadores que oficialmente no soportamos, trabajamos duro para eliminar los «killer bugs» tales como errores de script durante la inicialización que pueden hacer la página totalmente inutilizable.

Todo se resume a esto: Podemos asegurar la calidad del soporte para los navegadores y ambientes que constantemente les hacemos pruebas unitarias.  Trataremos de dar un nivel razonable de soporte para navegadores en cualquier ambiente popular. La prioridad más alta es asegurar que el navegador no arroje errores. De menor prioridad será asegurar que navegadores viejos o raros produzcan los mismos resultados exactos de los navegadores modernos.

¿Quién utiliza navegadores viejos ahora?

Cuando mires las estadísticas de navegadores, no mires en dónde están ahora. Piensa en dónde estarán en el 2015. Nosotros pensamos que todos estos navegadores tendrán muy poca participación de mercado para ese tiempo. Muchos de esos navegadores ya están allí y tendrán menos participación de mercado para cuando jQuery finalmente les quite el soporte.

En realidad estas estadísticas de Internet no importan mucho. Lo que realmente importa es si tus visitantes o usuarios de tu aplicación web están corriendo un navegador en particular. Esto es algo que sólo tú puedes responder. La decisión de actualizar a una nueva versión de jQuery está siempre en tus manos como desarrollador.

El mito de la consistencia de navegadores.

Hoy y mucho tiempo en el futuro, jQuery contendrá docenas de correcciones específicas de algún navegador para normalizar el comportamiento. En este punto, el navegador más problemático para jQuery 2.x es Android 2.3. Esa versión tiene un significante 20% de la base instalada de Android y todavía está siendo lanzada en nuevo productos móviles. Muchas características JavaScript como element.classList no son soportadas allí, y es uno de los últimos navegadores en requerir el prefijo -webkit- para propiedades estandarizadas CSS.

Los proyectos de jQuery se tratan de hacerle la vida fácil al desarrollador, continuaremos soportando los arreglos que sean necesarios para suavizar las inconsistencias de los navegadores populares. Conforme la participación de mercado de navegadores específicos llegue a cero, tomaremos la oportunidad de quitar esos parches y quitar el soporte para ellos para poder simplificar el código base. Eso hará que las páginas que utilicen jQuery se ejecuten un poco más rápido.

Extraído del Official jQuery Blog por Dave Methvin.

jQuery lanza Beta 1 de jQuery 1.11.1 y 2.1.1

La fundación jQuery ha lanzado versiones beta de jQuery. Estas versiones corrigen errores que han sido reportados y corregidos recientemente.

Como con todo lanzamiento de betas, están disponibles para que puedan hacer pruebas y permitir encontrar nuevos errores, comportamientos sorpresivos o regresiones.

Si descubren algo reportarlo a bugs.jquery.com

Las versiones beta se encuentran en el CDN de jQuery, las puedes incluir directamente del CDN (pero no las usen en producción). Como siempre la rama 1.x soporta Internet Explorer 6/7/8 y la rama 2.x no lo soporta.

http://code.jquery.com/jquery-1.11.1-beta1.js
http://code.jquery.com/jquery-2.1.1-beta1.js

Más información en el Blog de jQuery

jQuery UI

jqueryui

¿Qué es jQuery UI?

A comienzos del 2006 John Resig anunció una pequeña biblioteca que llamó jQuery. Se volvió inmensamente popular, gracias a que era muy fácil extender su funcionalidad a través de plug-ins.

Con los meses, miles de plug-ins fueron creados por la comunidad jQuery. Mientras la abundancia de plug-ins entregaba una gran variedad, estaban separados por todo Internet, había APIs inconsistentes, y poco o ninguna documentación.

A causa de estos problemas el equipo de jQuery quería proveer un conjunto oficial de plug-ins en una ubicación central. En setiembre del 2007 ellos crearon una nueva biblioteca con estos plug-ins: jQuery UI.

jQuery era y es nada más que una colección de plug-ins y utilidades construídas sobre jQuery. Si escarbas un poco más encontrarás un conjunto de bloques de construcción consistentes y bien documentados para ayudarte a construir todo desde pequeños sitios web hasta altamente complejas aplicaciones web.

A diferencia de los plug-ins jQuery en general, jQuery UI es soportado por la fundación jQuery. Esto significa que puedes contar con que son oficialmente soportados y mantenido durante el tiempo de vida de tu aplicación.

La biblioteca es utilizada por el 19% de 10,000 sitios en la web y ha sido incorporado al núcleo de WordPress y Drupal.

¿Quién es jQuery UI?

El desarrollo de jQuery UI es coordinado por la fundación jQuery – una asociación sin fines de lucro cuyos fondos provienen de contribuciones de la comunidad en tiempo y dinero.

El equipo de jQuery UI es un grupo de 6 personas que están repartidas por el mundo.
Esta biblioteca es conducida por la comunidad y voluntariado y siempre hay algo que hacer, así que puedes participar.

Contenido de jQuery UI

Existen 4 categorías: widgets, interactions, effects y utilities.

Widgets

Son jQuery plug-ins para crear elementos de la interfaz de usuario. Hay 12 widgets:

  • Accordion o Acordión.
  • Autocomplete o Auto-completar.
  • Button o Botón.
  • Datepicker o Seleccionador de fechas.
  • Dialog o Ventana de diálogo.
  • Menu o Menú.
  • Progressbar o Barra de progreso.
  • Selectmenu o Botones de radio.
  • Slider o Deslizador.
  • Spinner o Girador para números.
  • Tabs o Pestañas.
  • Tooltip.

Interacciones

Son jQuery plug-ins que le dan al usuario la habilidad de interactuar con elementos del DOM. Por ejemplo la interacción «draggable» permite a los usuarios arrastrar elementos en la pantalla y «sortable» permite ordenar una lista

  • Draggable
  • Droppable
  • Resizable
  • Selectable
  • Sortable

Effects

Son un conjunto de animaciones personalizadas y transiciones para elementos del DOM.

  • Bind
  • Bounce
  • Clip
  • Color
  • Drop
  • Explode
  • Fade
  • Fold
  • Highlight
  • Puff
  • Pulsate
  • Scale
  • Shake
  • Size
  • Slide
  • Transfer

Utilities

Son un conjunto de herramientas modulares que la biblioteca utiliza internamente.

  • :data
  • :focusable
  • :tabbable
  • Position
  • Widget Factory

Beneficios de usar jQuery UI

Cualquier sitio web o aplicación que utilice jQuery es muy probable que encuentre un uso para jQuery UI. El núcleo de jQuery es poderoso pero es una pequeña biblioteca que no hace todo lo que necesitas para construir aplicaciones web modernas.

Soporte de navegadores completo.

Usando jQuery UI puedes estar seguro que tu código funcionará en todos los principales navegadores. En la versión 1.11 jQuery UI soporta Internet Explorer versiones 7 y siguientes, las últimas 2 versiones de Chrome, Firefox, Safari y Opera. jQuery UI está comprometido a asegurar que puedas escribir tu código una sola vez y que funcione en todos lados.

Nota. El soporte de la versión 6 de Internet Explorer desde la versión 1.10 ha sido quitado debido al bajo uso global. Si necesitas el soporte de la versión 6 de Internet Explorer puede usar la versión 1.9 de jQuery UI.

«Open Source» y puedes usarlo gratuitamente.

Todo en jQuery UI es completamente «código abierto». Los archivos fuente están disponibles de manera pública en https://github.com/jquery/jquery-ui. La página inicio del proyecto y la documentación de la API también son «código abierto»

Todo desarrollo es hecho de manera abierta y la comunidad es animada a participar. Si encuentras un error en la biblioteca puede enviar un parche. Si estás confundido con la documentación o encuentras un error, puedes enviar un parche para corregirlo. El desarrollo de todos los proyectos de jQuery son conducidos por la comunidad y todas las contribuciones son siempre bienvenidas.

Además de ser abierto tambien es gratis, bajo los terminos de licencia del MIT. Esto significa que todos los proyectos de jQuery son libres de usar en cualquier proyecto (incluyendo proyectos comerciales), mientras la cabecera de derechos de copia en los archivos fuentes sea preservada.

Documentación

jQuery UI está completamente y consistentemente documentado. Incluso puedes encontrar documentación de versiones anteriores.

Mecanismo de temas.

jQuery UI utiliza un marco de trabajo de CSS que todos sus widgets utilizan. Esto no sólo significa que todos los widgets tienen la misma apariencia, te da la flexibilidad de crear tu propia apariencia. Para esto puedes utiliza ThemeRoller para jQuery UI en http://jqueryui.com/themeroller/

Énfasis en accesibilidad.

Accesibilidad es una consideración importante cuando se construye cualquier cosa en la web.
Todos los widgets de jQuery UI están diseñados con accesibilidad en mente.

Limitaciones.

  • Falta de Widgets: Sólo 12.
  • jQuery UI y dispositivos móviles: No está optimizada para móviles. No hay soporte de eventos «touch» o táctiles, la forma en qu ese muestran los Widgets es más apropiada para escritorios y el tamaño de la biblioteca, jQuery es una biblioteca muy grande para móviles pero es modular de tal manera que se puede incorporar sólo las funciones que se necesiten para reducir su tamaño.

Si estás considerando desarrollar una aplicación sólo para móviles deberías considerar un marco de trabajo centrado en móviles como jQuery Mobile.

jQuery UI vs. jQuery Mobile.

jQuery Mobiles es un marco de trabajo para interfaces de usuarios enfocada en crear experiencias que funcionen en todos los dispositivos. Como jQuery UI, jQuery Mobile no es nada más que una serie de widgets y utilidades que son construídas encima del núcleo de jQuery. De hecho jQuery Mobile directamente incluye la fábrica de widgets de jQuery UI y la utiliza para crear todos sus widgets.

A causa de las similitudes entre los dos marcos de trabajo, los equipos están trabajando en unir las partes comunes de ambos proyectos. La meta final es tener un sólo conjunto de widgets que funcionarán en cualquier dispositivo. Como el primer paso hacia esa meta, el lanzamiento de jQuery Mobile 1.4 incluye el widget pestaña o tabs de jQuery UI directamente. Por esta colaboración puedes contar con que el soporte de móviles de jQuery UI continuamente mejorará.

jqueryuicover

Este es un pequeño extracto del libro jQuery UI in Action de TJ Vann Toll que será publicado por Manning Publications Co. Este libro no está a la venta todavía pero lo puedes comprar en MEAP o Programa de Manning para Acceso Temprano, lo cual significa que puedes ir leyéndolo conforme lo vayan publicando. El precio es de $35.99 para la versión libro eléctronico si usas este código: dotd012414cc obtienes un descuento, tienes que ingresarlo en el campo «Promotional Code». El primer capítulo es gratis puedes leerlo aquí: http://manning.com/vantoll/jQueryUI_meap_ch01.pdf

La Fundación jQuery y los estándares.

La mayoría de desarrolladores piensan de jQuery en términos de sus raíces, como una biblioteca (library en inglés) que trata de traer un poco de cordura al disparatado conjunto de APIs y peculiaridades que varían de navegador en navegador. Aunque ésa es una de las cosas por la que jQuery fue creado, y aún lo hace, no es la única cosa. jQuery define una API útil que hace tan fácil trabajar con un elemento como con una docena. jQuery acorta los largos nombres de la API del DOM y quita tedioso código para empezar a trabajar, haciendo más fácil escribir y leer el código. jQuery agrega funcionalidad más allá de las APIs estándares para el trabajo que los desarrolladores web a menudo tienen que hacer.

API (Application Programming Interface),

DOM (document object model)

En resumen, jQuery no es sólo un reparador de APIs para navegadores. Al punto que si necesitamos corregir problemas, lo hacemos. Pero estamos aún más interesados en lograr que los navegadores corrijan sus problemas, y en darle forma a futuros estándares para evitar problemas, para que APIs nativas trabajen de manera apropiada desde el inicio. Luego podemos todos construir funcionalidad útil encima de esa base sólida.

Los miembros del equipo de jQuery brindan mucha experiencia del mundo real que guían a los estándares en la dirección correcta. El ejemplo más temprano de esto es el método «querySelectorAll», donde John Resig señaló que la implementación no era lo que los desarrolladores de JavaScript necesitaban. Desafortunadamente en el caso del «querySelectorAll», fue demasiado tarde para corregir los problemas.

Cómo jQuery puede darle forma a los estándares.

Para poder aportar a estándares emergentes, la Fundación jQuery se unió al World Wide Web Consortium (W3C) y ECMA International, el año pasado. De hecho, es una de las principales razones por la que la Fundación fuer formada. Miembros de W3C y ECMA tienden a ser representantes de las compañías que hacen navegadores y software comercial. Creemos que le daremos voz a los desarrolladores web en el proceso de estándares.

Yehuda Kats y Rick Waldron han estado activos en el grupo ECMA TC39, el cual define el lenguaje oficialmente conocido como EcmaScript pero que nosotros lo conocemos como JavaScript. Las excelentes notas de reuniones de Rick pueden darte una vista por dentro de las deliberaciones que suceden durante sus reuniones en persona.

Scott González y Kris Borchers han estado trabajando para refinar el estándar de Eventos de Puntero. Trae simplicidad, regularidad, y sanidad al manejo de las tecnologías de punteros para que los desarrolladores no tengan inconsistentes (y en conflicto) modelos de eventos para el ratón y dispositivos táctiles. Durante la transición, los desarroladores estarán encargándose de tres modelos de puntero – ratón, toque y puntero. jQuery y jQuery UI quieren simplificar esta transición para el estándar.

Julian Aubourg ha estado participando en revisiones al estándar XMLHttpRequest, una posición para el cual él ha sido probado en batalla por la implementación de jQuery $.ajax. Conociendo todos los problemas que jQuery ha tenido que trabajar para encontrarle una solución le provee a él con experiencia para evitar los mismos problemas en el futuro.

Scott González y TJ VanToll han estado activos ayudando a definir los tipos de entrada de HTML5 tales como <input type=»date»>, dando una práctica contribución basados en su experiencia con jQuery UI. La charla de TJ en la conferencia de jQuery de Portland hace un gran trabajo cubriendo las trampas de usar tipos de entrada HTML5 hoy y estándares emergentes como Componentes Web (Web Components) que podrían hacer las cosas más fáciles para los desarrolladores web.

La Fundación jQuery es también un fuerte abogado de la «accesibilidad»; queremos hacer fácil para los desarrolladores alcanzar usuarios incluyendo aquellos con impedimentos visuales o motores. La W3C direcciona esos problemas a través de la Iniciativa Web Accesibilidad, y específicamente con ARIA (Accesible Rich Internet Applications). jQuery UI Widgets están incorporando atributos ARIA, y el miembro de la Fundacion Deque Systems ha auspiciado muchos eventos sobre temas de accesibilidad de jQuery.

Finalmente coordinamos y pasamos los «bugs» errores reportados a jQuery que son debido a violaciones en los estándares en un navegador en particular. Con la mayoría de navegadores actualizándose cada unos cuantos meses, a menudo no tiene sentido para jQuery incorporar largas y complejas soluciones para los errores cuando son problemas temporales. Pero estamos comprometidos a hacer que los fabricantes de navegadores los corrijan tan pronto como sea posible.

Un futuro jQuery conducido por estándares.

jQuery no es un «framework» o marco de trabajo que tercamente demanda el control sobre todo el DOM. En la mayoría de los casos puedes (y a menudo deberías) usar las APIs del DOM junto con jQuery. Ese fue el diseño planeado; puedes verlo en aspectos como el objeto «this» dentro de un manejador de eventos siendo un elemento del DOM, no un objeto jQuery. El único lugar donde jQuery requiere el control es cuando elementos en el DOM son reemplazados vía métodos como .html() o removidos con un método como .empty(), para que ningún dato asociado de jQuery pueda ser limpiado.

Similarmente, los tipos de entrada HTML5 que vienen incorporados pueden coexistir con jQuery UI widgets de entrada. jQuery UI está comprometido en proveer widgets para interfaz de usuario que provean gran funcionalidad sin sacrificar accesibilidad, y soportando de manera inherente estándares tales como los de ARIA.

La Fundación jQuery quiere APIs basados en estándares y características de avanzada en JavaScript para que puedan ser usadas directamente por los desarrolladores. Las buenas noticias son que la comunidad está haciendo un buen progreso para esa meta, y los miembros del equipo de jQuery están ayudando a través de nuestra participación en el proceso de los estándares. Aun la evolución continua de estándares web y prácticas, combinadas con un ecosistema de «plug-ins» y conocimiento vibrante de terceros, proveerán razones convincentes para usar jQuery. Los desarrolladores web merecen tener lo mejor de ambos.

Extraído del Blog Oficial de jQuery por dmethvin.