Artículos con la etiqueta 'prototype.js "


Objetos de Flash discretos

La inserción de objetos (sobre todo los objetos de Flash) en las páginas web se ha convertido en una estresante a menudo últimamente. En otros mensajes que ya han abordado el tema de la forma de detectar Flash y páginas insertadas adecuadamente. Como ya comentamos técnicas discreto, marcamos dos conocidos script puede detectar (y, eventualmente, instalar) e insertar objetos Flash en una página, de una manera muy discreta y afficiente: SWFObject y UFO .
Ambos scripts tienen esencialmente las mismas características y funcionamiento idénticos. El enfoque consiste en sustituirla por una cierta necesidad de activar la etiqueta con el contenido Flash. Como sabemos, este procedimiento elimina el problema de la activación del objeto Flash impuesto por Internet Explorer, sin embargo, implica que esté activado Javascript en el navegador de destino.
Ambas secuencias de comandos no utiliza ninguna bibliotecas externa como prototype.js , por ejemplo. La diferencia más importante entre los dos es que SWFObject se llama cuando el TAG que ser reemplazado ya está cargado en la página, no exactamente como discreto. He aquí un extracto de código que muestra la secuencia de llamada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"flashcontent" > < div id = "flashcontent">
strong > < fuerte > Necesitas actualizar tu Flash Player </ fuerte >
Esto se sustituye por el contenido de Flash.
Coloque el contenido alternativo aquí y los usuarios sin el plugin de Flash o con
Javascript apagado puede llegar a ver esto. > noscript < / code > Este contenido le permite dejar de lado < código de línea = "true"> NoScript </ código >
etiquetas. "swfobject.html?detectflash=false" > bypass the detection < / a > if you wish. Incluya un enlace a < un href = "swfobject.html? detectflash = false"> pasar por alto la detección </ un > si lo desea.
</ div >
"text/javascript" > < script de type = "text / javascript">
/ / <! [CDATA [
, "sotester" , "300" , "300" , "9" , "#FF6600" ) ; var = new SWFObject para ("so_tester.swf", "sotester", "300", "300", "9", "# FF6600");
) ; // this line is optional, but this example uses the variable and displays this text inside the flash movie so.addVariable ("flashVarText", "esto se pasa a través de FlashVars por ejemplo, sólo") / / esta línea es opcional, pero este ejemplo se utiliza la variable y muestra este texto dentro de la película flash
; so.write ("flashcontent");
/ /]]>
</ script de >

UFO , sin embargo, permite un'approccio mucho más en línea con el guión discreto clásico. La sustitución de la etiqueta está en modo transparente, sin secuencias de carga abbligare, como se muestra en el ejemplo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< cabeza >
title > < título > discretos objetos Flash (OVNI) | Página de ejemplo </ title >
"Content-Type" content = "text/html; charset=iso-8859-1" / > < meta http-equiv = "Content-Type" content = "text / html; charset = ISO-8859-1" />
"text/javascript" src = "ufo.js" >< / script > < script de type = "text / javascript" src = "ufo.js"> </ script de >
"text/javascript" > < script de type = "text / javascript">
var FO = {película: "test8.swf", ancho: "300", la altura: "120", MajorVersion: "12", construcción: "0", XI: "true"};
UFO.create (FO, "ufoDemo");
</ script de >
</ cabeza >
< cuerpo >
"ufoDemo" > < div id = "ufoDemo">
p > < p > Reemplazo de contenido </ p >
"border: none;" / >< / a >< / p > Macromedia Flash Player "style =" border: none; "/> </ un > </ p >
</ div >
</ cuerpo >

En el código fuente del script de ovnis , de hecho, usted puede usar inmediatamente - más apropiado - un evento que atenta para cargar totalmente la página antes de la sustitución es, el enfoque por lo tanto, mucho más apropiado a la escritura no intrusiva.

Más información ...

Javascript marcos en Apollo

Entre las diversas bibliotecas-o conjunto de bibliotecas (marco real), dedicados a Ajax, HTML y Web 2.0 Extensión de la interfaz que he visto, Ext. es sin duda digno de mención. El sitio web y la documentación están bien hecho y organizado, también la demostración de que no se puede perder. La interfaz gráfica de usuario, compatibilidad con Prototype y Scriptaculous y impletazione de Utilidades de Yahoo, lo convierten en un sistema interesante, por lo menos! Tenga cuidado sin embargo de la licencia! A pesar de que se presente como de código abierto y gratuito para uso personal, requiere una cuota para mejorar el uso y cuidado. Este último, de hecho, nunca debe ser subestimada en el marco de una cierta complejidad.

Para obtener la documentación y la demostración , haga clic aquí .

En particular, menciona este sistema, todavía estoy analizando en detalle, ya que se ha utilizado para crear lector de alimento fresco , una de las aplicaciones de ejemplo que con el lanzamiento de Adobe Apollo Alpha (ver Adobe Apollo Alpha Release ). fresco, por lo tanto, es un ejemplo de dos de Apolo, lo que demuestra su capacidad de usar HTML y Javascript, como máximo. Fresco, de hecho, no es un puro Apolo, sino que utiliza el marco Ext. - y JavaScript y HTML - Apolo en el motor! Gran!

Más información ...

Discreto Javascript: pseudo-real y

En este post me gustaría analizar el uso de secuencias de comandos discretos desde el punto de vista del diseñador web. Normalmente, de hecho, una secuencia de comandos que no es intrusivo hacia el final del navegante!
Pero también puede ser bueno para el Diseñador de Web?

Discreta desde el punto de vista del Diseñador de Web JavaScript

Ponernos en los zapatos de un diseñador de páginas web podrían identificar dos categorías de discreta discreta JavaScript: Javascript discreta JavaScript verdadera y pseudo.

Ambas categorías, sin embargo, no son completamente no intrusivo (siempre desde el punto de vista del diseñador de la web). Un JavaScript discreta real y completa no debe tomar ninguna acción en la página web, pero esto es - por ahora - básicamente imposible. La operación mínima requerida durante la instalación de un guión, sin embargo, la inclusión de la inclusión de la propia secuencia de comandos! Así que esto se permite la operación de que - en realidad - que no obliga al diseñador de la tela para hacer los ajustes regulares a la estructura de la página. El posicionamiento simple de la inclusión de la etiqueta script dentro de la head puede ser considerado como no-intrusiva.

El JavaScript discreta cierto

Los scripts de este tipo son las que sólo requieren la inclusión de la secuencia de comandos discretos y no, no reclamar otra operación! Guión de este tipo son, por ejemplo (el habitual y que se cita), Snap . Una vez que has introducido el código se incluyen el diseñador web no debe llevar a cabo cualquier otra operación, porque el guión complemento funciona con etiquetas estándar.

El JavaScript discreta seudo

Estos difieren de los anteriores en cuanto a que requieren un etiquetado adicional para funcionar correctamente. Ejemplos de este tipo son Control.Tabs de Ryan Johnson o biblioteca para la presentación de la mesa de luz JS . per identificare i link che devono essere modificati. Lightbox JS , in particolare, richiede addirittura la presenza esplicita sia di Prototype che di Scriptaculous . Esta última solución, por ejemplo, requiere la inclusión en la etiqueta de A atributo rel para identificar los enlaces que deben ser modificados. mesa de luz JS , en particular, requiere incluso la presencia de ambos explícita Prototipo de Scriptaculous . Como se indica en la página web de la mesa de luz JS , la inclusión de la secuencia de comandos debe tener este aspecto:

1
2
3
"text/javascript" src = "js/prototype.js" >< / script > < script de type = "text / javascript" src = "js / prototype.js"> </ script de >
"text/javascript" src = "js/scriptaculous.js?load=effects" >< / script > < script de type = "text / javascript" src = "js / scriptaculous.js? = carga de los efectos"> </ script de >
"text/javascript" src = "js/lightbox.js" >< / script > < script de type = "text / javascript" src = "js / lightbox.js"> </ script de >

Los enlaces que apuntan a un'immmagine que desea ver el sistema con la mesa de luz JS debe ser escrito así:

1
"images/image-1.jpg" rel = "lightbox" title = "my caption" > image #1 < / a > < un href = "images/image-1.jpg" rel = "lightbox" title = "mi leyenda"> de la imagen # 1 </ un >

Además de identificar a un grupo de imágenes, para agregar la capacidad de desplazarse hacia adelante y hacia atrás las imágenes, la etiqueta A debe establecerse de la siguiente manera:

1
2
3
"images/image-1.jpg" rel = "lightbox[roadtrip]" > image #1 < / a > < un href = "images/image-1.jpg" rel = "lightbox [roadtrip]"> de la imagen # 1 </ un >
"images/image-2.jpg" rel = "lightbox[roadtrip]" > image #2 < / a > < un href = "images/image-2.jpg" rel = "lightbox [roadtrip]"> de la imagen # 2 </ un >
"images/image-3.jpg" rel = "lightbox[roadtrip]" > image #3 < / a > < un href = "images/image-3.jpg" rel = "lightbox [roadtrip]"> de la imagen # 3 </ un >

La necesidad de estas constricciones es evidente, no hay manera fácil de distinguir un elemento de enlace (etiqueta A ) de otra. En particular, no está claro que el elemento diseñador Web desea visualizar en una forma u otra. Que ser necesariamente el diseñador Web para indicar de alguna manera la etiqueta y sus comportamientos. Por lo tanto, se requiere - intrusivo - totalmente comprensible, no disminuye en absoluto la utilidad y el potencial de estas secuencias de comandos. Sólo conducen a un mayor detalle y unas pocas líneas de código en el diseñador web.

Es interesante, sin embargo, el doble aspecto de 'JavaScript discreta, analizado tanto desde el punto de vista del usuario final desde el punto de vista de diseño Web.

Más información ...

Defectos dell'unobtrusive JavaScript

Como hemos hablado de ello y en el post anterior, es el momento para hablar sobre el mal (es broma), o al menos destacar algunas deficiencias de la técnica de JavaScript discreta.
Si el discreto código JavaScript que se ejecuta cuando la página está completamente cargada, se deduce que cuanto mayor sea la cantidad de datos (HTML) que compone nuestra página y más tiempo para esperar antes de que nuestro código se ejecuta.

Esto puede resultar en demoras en la ejecución y que resulta en un molesto efecto de parpadeo si se trabaja en los elementos visuales de la página. Tomemos por ejemplo el código utilizado por Ryan Johnson para crear objetos TabStrip. Si nos fijamos en la demostración se encuentra que por un segundo o así, cuando se carga la página, hay claramente una disposición estándar reemplazado poco después por los objetos TabStrip. Recarga la página de nuevo, gracias a la caché del navegador, el problema tiende a disminuir (tratar de limpiar toda la caché de su navegador para ver los tiempos).

Todo esto debe hacernos reflexionar sobre los límites de esta técnica. El mismo complemento sufre precisamente las mismas desaceleración, especialmente las páginas a menudo extremadamente altas que la de undolog.com . Carga de la página principal de este blog es claro que Snap corre unos segundos más tarde, es decir, cuando la página está completamente cargada.

Por definición de "activar discreta es difícil de resolver este problema en general. Sin embargo, el desarrollo de un propietario del sitio puede tomar algunas precauciones para reducir o eliminar los defectos. Una forma muy sencilla es crear una especie de elemento de precarga de uso frecuente en Adobe Flash. A continuación, puede configurar el cuerpo de la etiqueta - que contiene todos los elementos de la página - lo que es invisible, dejando la tarea de código Javascript para que sea visible cuando se ha terminado - en su caso - los cambios en el DOM:

1
"ibody" style = "display:none" > < cuerpo id = "ibody" style = "display: none">

El discreto código JavaScript al final de sus operaciones:

1
2
3
"ibody" ) . style . display = "" ; documento getElementById ("ibody") el estilo de visualización = ""...;
/ / Si utiliza prototipo
) . style . display = "" ; $ ("Ibody") Estilo de visualización = ""..;

Solución, sin embargo, trivial y no siempre son aplicables. Además, incluso si de alguna manera resuelto el problema de la primera caricameno, navegar de tal manera en el largo plazo podría ser realmente molesto para los navegantes. No sea intrusivo, por lo tanto, tiene un precio que pagar. Incluso operando a nivel de objeto, por ejemplo mediante el establecimiento de sólo los elementos interesantes en el modo oculto, el hecho de que el código se inicia al final de la carga de la página entera con ella, inevitablemente, los mismos problemas exactas.

Más información ...

Ejemplos de discreta Javascript

Lo prometido es deuda aquí están algunos ejemplos concretos de JavaScript discreta, herramienta versátil y poderosa si se utiliza correctamente. El sitio web / blog de ​​Ryan Johnson se puede descargar dos muy buen ejemplo de JavaScript discreta:

Ryan Johnson, en su guión, la biblioteca utiliza Prototype , al igual que muchos de los demás. También ha escrito algunas extensiones a la relativamente Prototype , presentó a continuación - en una forma diferente - en la última versión de la biblioteca.
El uso de prototipos para ilustrar el funcionamiento de la discreta código JavaScript es generalmente más conveniente - como veremos más adelante, sin embargo, aquí hay una cruda primer ejemplo que no requiere de bibliotecas externas. Comenzamos por recordar que el concepto detrás de la discreta JavaScript es empezar desde cualquier página HTML (estándar y no necesariamente por escrito por nosotros - el punto fuerte más importante) y utilizar Javascript para hacer algunos cambios.

Schematimamente el concepto es para realizar una función que analiza el código HTML, a continuación, atraviesa el DOM y, en particular, para añadir o cambiar la funcionalidad. Normalmente utilizan dos métodos para ejecutar código Javascript para cargar una página: la primera es lo que no se coloca el código en cualquier función, y luego dejar que el navegador ejecuta código inmediatamente cargado en el punto donde aparece la llamada:

1
script > < script de > alert ("Hola"); </ script de >

El mismo resultado se obtiene mediante la inclusión del código:

1
"http://miosito.com/miocodice.js" >< / script > < script de src = "http://miosito.com/miocodice.js"> </ script de >

Sin embargo, cuando se debe operar en el DOM de una página que se supone una carga completa, para que todos la etiqueta de la página está presente y disponible para ser rastreados. Así que la mejor solución se convierte en el uno para asegurarse de que la página es completa. Esto es posible gracias a la participación del evento onload de la etiqueta del cuerpo, por ejemplo, que se libera cuando la carga de la página se ha completado.

1
2
3
miafunzione ; ventana onload = MyFunction.;
/ / O, que es el mismo
function ( ) { alert ( "Hello" ) ; } . ventana onload = function () {alert ("Hola");}

Evitar, por supuesto, la solución jurídica que sería un eufemismo llamarlo intrusiva:

1
"miafunzione()" > < cuerpo onload = "MyFunction ()">

Otra técnica, más grueso e igualmente intrusivo (ya que obligaría al usuario final para colocar el código en un lugar determinado), es insertar el guión al final del documento antes de que el cuerpo de la etiqueta de cierre, ahora obsoleto y técnica utilizada en casos excepcionales (ver Google Analytics!).

Aún mejor es usar el método siguiente:

1
2
3
4
5
6
7
window. addEventListener ) { if (addEventListener window.) {
"load" , miafunzione , false ) ; ventana. addEventListener ("carga", MyFunction, false) ¾ Í
( window. attachEvent ) { } Else if (window. attachEvent) {
"onload" , miafunzione ) ; ventana. attachEvent ("onload", MyFunction) ¾ Í
{ Else {}
createSubMenus; ventana. onload = createSubMenusÍ ¾
}

Incluso esta pieza de código está encerrado en una función. Se añade un detector de eventos para el evento de carga de la ventana, llamando a nuestra función miafunzione() . . Los navegadores modernos como Firefox, por ejemplo, se utiliza la función addEventListener() se define en el DOM nivel 2, mientras que Internet Explorer utiliza su función patentada attachEvent() . Sin embargo no estamos en la perfección de esta manera, de hecho, se sustituirá todo - si los hay - los eventos onload creados por otros scripts, que no es realmente "no intrusiva".

Para resolver este problema rápidamente, que a causa del diferente comportamiento del navegador se lo complicado de explicar aquí, usted debe usar como libreirie prototipo proporciona el método un'elengantissimo para superar el problema:

1
window , 'load' , function ( ) { alert ( "Hello" ) ; } ) ; . Evento Observar (ventana, 'load', function () {alert ("Hola");});

La sintaxis es muy obvio y espectacular! La ventaja para los que no lo había entendido, es que se puede escribir:

1
2
window , 'load' , function ( ) { alert ( "Hello 1" ) ; } ) ; . Evento Observar (ventana, 'load', function () {alert ("Hola 1");});
window , 'load' , function ( ) { alert ( "Hello 2" ) ; } ) ; . Evento Observar (ventana, 'load', function () {alert ("Hola 2");});

Al cargar la página se mostrará antes de la alerta "Hola 2" y luego la alerta "Hola 1". Básicamente se carga en un FILO (First Input Output pasado) una pila, al tiempo que garantiza la ejecución de todos los eventos conectados para cargar el documento exactamente lo que se desea. De esta manera, una página puede cargar - casi - infinita JavaScript discreta que conectar para cargar el documento.

Pero, ¿qué se puede hacer con esta técnica? Muchas cosas interesantes. Un ejemplo que podemos comentar (véase también el prototipo: el uso del doble signo de dólar ($ $) ) viene de Tobie Langel . Con pocas líneas de código y la descarga de bibliotecas Prototype y Scriptaculous puedes dar un bonito efecto al ancla clásico de nuestras páginas. En primer lugar crear una página HTML con el siguiente código:

1
2
3
4
5
6
7
8
= "#capitolo1" > Vai al capitolo 1 < / a >< / p > < p > < un href = "# capítulo 1"> Vai en el Capítulo 1 </ un > </ p >

< / p > < p > </ p >
< / p > < p > </ p >

.... < / p > .... una gran cantidad "de < p > </ p > .... así como un ejemplo

"capitolo1" > Capitolo 1 < / h1 > < h1 id = "Capítulo 1"> Capítulo 1 </ h1 >

Incluir la página:

1
2
3
4
5
6
7
8
9
10
11
12
"prototype.js" type = "text/javascript" charset = "utf-8" >< / script > < script de src = "prototype.js" type = "text / javascript" charset = "UTF-8"> </ script de >
"scriptaculous-js-1.7.0/src/effects.js" type = "text/javascript" charset = "utf-8" >< / script > < script de src = "scriptaculous-js-1.7.0/src/effects.js" type = "text / javascript" charset = "UTF-8"> </ script de >

"text/javascript" language = "javascript1.2" > < script de type = "text / javascript" language = "JavaScript1.2">
Event.observe (ventana, 'load', function () {
$ $ ('A [href ^ = #]: No ([href = #])') Cada uno (función (elemento) {.
element.observe ('click', function (evento) {new Effect.ScrollTo (this.hash.substr (1));
Event.stop (evento);
bindAsEventListener (elemento))
})
})
</ script de >

Gracias a "utilizar Event.observe() la función y dos dólares ($ $) puede modificar fácilmente el comportamiento del anclaje clásico. En este caso, una nueva función está enganchado a las cargas de la página HTML. Al tomar el caso de carga se remonta a todos los eslabones de la DOM (Tag <A>) con href que comienza con una almohadilla (#, con exclusión de la que sólo con almohadilla!). A estos elementos es una función de adjunto al evento click, similar a lo que se hizo con la carga del documento. En este punto entra en juego Scriptaculous lo que produce un efecto de la espiral hacia el punatato elemento de nuestro enlace - modificado!

Más información ...

Accesibilidad y Usabilidad: discreta Javascript

Permitir a los usuarios interactuar con una página Web en los últimos años se ha producido un aumento significativo en el uso de secuencias de comandos del lado del cliente: código Javascript se puede responder en tiempo real y manipular una gran variedad de información. La Web 2.0 es la última expresión de esta capacidad de interacción, en la que el usuario final - el usuario a participar activamente en la evolución de la construcción y "del sitio Web, interactuar con él y ayudarte a ti mismo. Se conoce como contenido generado por usuarios (UGC, o - contenido generado por usuarios) que ve en el "navegador" definitivamente no es pasiva!

Para lograr esta interacción, lo que permite al usuario final para sumar su aporte, hemos desarrollado una serie de técnicas que han cambiado el aspecto y el comportamiento de las páginas web (estático hasta ahora, pero ahora similar a las aplicaciones tradicionales de Desktop) en los últimos años. Cambiar el contenido de una página, enviar archivos, dando su voto a un vídeo o un documento, registrar o cambiar sus datos personales, son sólo algunas de las operaciones de las adaptaciones en muchos servicios (2.0 beta) en la Web

Más información ...

Cuando JavaScript gana

Elija la tecnología a utilizar en el desarrollo de una aplicación Web es de vital importancia, por no encontrarse en problemas poco después. El tipo de aplicación web, sus características operativas, son el primer punto a tener en cuenta para elegir el marco y las tecnologías relacionadas.
Muchas veces he discutido la eficacia de la secuencia de comandos JavaScript en contra de diferentes tecnologías como Adobe Flash o Java. Sin embargo, es importante hacer hincapié en un aspecto importante a menudo pasado por alto: el acceso a la DOM de Javascript, en este caso, el candidato (si no el único) de los favoritos para este tipo de operaciones..

Las herramientas con Snap , por ejemplo, operan en un mecanismo simple: cuando la página HTML se carga (y después de la introducción de la carga de los scripts de JavaScript) es escanear la página, y añadió un nuevo código HTML en los puntos especiales. En el caso de Snap identifica todos los enlaces a páginas externas (o en la configuración interna de la última edición), el <A> TAG para indenderci. Estos se modifican para que al pasar el ratón para abrir un diálogo anterpima de enlaces (ver este blog para ver un ejemplo).

No sólo complemento de otras escrituras, pero muchos de JavaScript básicamente hacen lo mismo. Últimamente, esta técnica es ampliamente utilizado por la biblioteca del prototipo , que ofrece una variedad de métodos (como la famosa doble en dólares, o $ $ $ - ver Prototipo: el uso del doble signo de dólar ($ $) ) es para hacer un seguimiento que el cambio - la mosca - los elementos de una página HTML.

Navegación por el DOM HTML es por lo tanto, la tarea específica de Javascript. Históricamente, entre otras cosas, se introdujo en JavaScript para leer y escribir el contenido de una página HTML.
Por ejemplo, si quisiéramos hacer algunos cambios en una página HTML con Adobe Flash, que aggorgeremmo - tarde o temprano - que se ven obligados a invocar una función JavaScript. El nuevo 3,0 ActionScript, por ejemplo, proporciona una clase ( ExternalInterface ) adecuado para este propósito. – o fscommad() per chiamare una funzione Javascript: Una vez que (en las versiones anteriores de ActionScript), se utilizó el comando getURL() - ha sido sustituido por una mejor flash.net.navigateToURL() - o fscommad() para llamar a una función de JavaScript:

1
) ; getURL ("javascript: myFunction ()");

Además:

La clase ExternalInterface es la API externa, una interfaz de programación de aplicaciones que permite la comunicación directa entre ActionScript y el contenedor de Flash Player, por ejemplo, una página HTML con JavaScript, o una aplicación de escritorio con Flash Player incorporado.

Tenga en cuenta que "la aplicación de escritorio", que tanto recuerda a Apolo!

Hoy, gracias a ExternalInterface , puede invocar una función de JavaScript a por lo menos limpio (esta clase permite una gestión mucho más eficaz que getURL() , como paso de parámetros):

1
2
3
4
5
6
/ * Las llamadas de las funciones externas "addNumbers"
pasando dos parámetros, y asignación de resultado de esa función
a la variable "número" * /
uint = 3 ; var param1: uint = 3;
uint = 7 ; var param2: uint = 7;
uint = ExternalInterface . call ( "addNumbers" , param1 , param2 ) ; var resultado: uint = ExternalInterface llamada ("addNumbers", param1, param2);.
1
2
3
4
5
6
<script> <! -
/ / Suma dos números y devuelve el resultado a ActionScript
num1 , num2 ) { addNumbers función (num1, num2) {
num1 + num2 ) ; retorno (num1 + num2);
}
/ / -> </ Script>

¿Qué podemos concluir entonces? Entre los diversos marcos y bibliotecas disponibles en el análisis inicial del proyecto que usted desea alcanzar es de suma importancia. Los errores en esta etapa puede afectar seriamente a las siguientes etapas de cualquier proyecto Web 2.0. JavaScript, entonces, que triunfa sobre todo cuando se necesita interactuar con el DOM.

Más información ...

Prototipo: El uso de doble dólar ($ $)

Con la última versión de Prototype, Andrew , y Christophe han acelerado y mejorado la 'doble dólar ( $ $ utilidades ), que le permite seleccionar un elemento especificando el dial (casi todos los selectores CSS3 el apoyo de las especificaciones).

La utilidad de esta función va más allá de los $ popular, que puede ser útil, pero, en última instancia, no se realiza ninguna operación digna de nota. Las utilidades de "dos dólares" ($ $), pero en realidad le permite seleccionar cualquier tipo de elemento, que le da una gran herramienta para filtrar los elementos en el DOM.

He aquí algunos ejemplos tomados de la página web oficial:

1
2
3
4
5
) ; // -> Tutti i DIV del documento. $ $ ('Div') / / -> Todo el documento DIV. Igual que document.getElementsByTagName ('div')!
) ; // -> Uguale a $('contents'), ma ritorna sempre un array. $ $ ('#') Contenido / / -> Igual que $ ('contenido'), pero siempre devuelve una matriz.
) ; // -> Tutti fli elementi LI con class 'faux' $ $ ('Li.faux') / / -> Todos los elementos LI Fli con 'imitación' de la clase
) ; // -> Tutti i TAG A (links) al di sotto di un elemento con ID "contents" e con un attributo rel $ $ ('Contenido Número uno [rel]') / / -> Todos los TAG A (enlaces) a continuación de un elemento con id "contenidos" y con un atributo rel
) ; // -> Tutti i TAG A (links) con un'attributo href con valore "#" (eyeew!) $ $ ('A [href = "#"]') / / -> Todos los TAG A (enlaces) con un valor de atributo href con "#" (eyeew!)

La fuerza, sin embargo, reside en la posibilidad de excluir algunos artículos en favor de otro, por ejemplo:

1
) ; // -> Tutti i TAG A (links), esclusi quelli che contengono un attributo rel impostato a "nofollow" $ $ ('R: No ([rel = nofollow ~])') / / -> Todos los TAG A (enlaces), con exclusión de aquellos que contienen un atributo rel en "nofollow"

Aún más interesante es:

1
) $ $ ('A [href ^ = #]: No ([href = #])')

Esto, en la práctica, todos ubicados en TAG con el atributo href, que comienza con '#', pero no toma en cuenta los que son iguales a '#' solo. En otras palabras, hace caso omiso de los enlaces que apuntaban a un identificador válido!
Esta característica única de ($ $) ha inspirado a Tobie Langel para crear un sencillo script (desarmado) puede añadir un bonito efecto cuando se desplaza dentro de una sola página HTML que se mueven a las anclas, con la técnica - sólo - href = "#".
Para una demostración haga clic aquí .

Más información ...



Deje de SOPA