Pregunta

Posible duplicado:
¿Alguien puede explicar este código jQuery?

Ya publiqué esto antes, pero me gustaría refinar mi pregunta (y parece que no puedo hacerlo en el hilo anterior).

El código es:

$(document).ready(function()
    {
            var rot=$('#image3').rotate({maxAngle:25,minAngle:-55,
            bind:
                    [
                            {"mouseover":function(){rot[0].rotateAnimation(85);}},
                            {"mouseout":function(){rot[0].rotateAnimation(-35);}}
                    ]
            });
    });

Está tomado de aquí: http://wilq32.googlepages.com/wilq32.rollimage222, y también hay una demostración de la funcionalidad allí (animar una rotación de imagen: la tercera demostración de la página).

Lo que necesito explicado:

  1. Entiendo que se está declarando una variable...putrefacción", pero parece que no puedo entender dónde termina la declaración....

  2. Cuando se utiliza la variable, se utiliza como pudrirse[0], Que hace [0] ¿representa?¿Es esto una matriz?

  3. nunca he visto unir usado así, la sintaxis original es

    $("selector").bind( tipo, [datos], fn );

¿Qué está pasando entonces?¿Cuáles son todas las comas y [ ] ¿acerca de?

  1. Lo que me gustaría hacer, eventualmente, es usar este script para rotar la imagen "X", mientras se hace clic en el elemento "Y".¿Cómo se puede hacer esto (preferiblemente sin "enlazar")?

¡Gracias!

¿Fue útil?

Solución

Creo que los problemas sintácticos básicos han sido explicadas por otros aquí bastante bien ...

En cuanto a:

  

Lo que me gustaría hacer, con el tiempo, es   utilizar este script para girar la imagen "X",   se hace clic mientras que el elemento "Y".   ¿Cómo se puede hacer esto (preferiblemente   sin "atar")?

Prueba esto:

var x=$("#imagex"); //<-- image to be rotated
var y=$("#elemy"); //<-- element to be clicked
var angleOfRotation=45; //<-- angle of rotation

y.bind("click",function(){
  x[0].rotateAnimation(angleOfRotation);
});

Otros consejos

Declaración termina el segundo al último punto y coma. La referencia se captura y se utiliza mucho más tarde, durante la ejecución de las funciones de devolución de llamada pasado.

rot es un objeto jQuery, que no es una matriz pero puede ser indexado como uno.

rot[0] es el primer objeto DOM que coincide con el #image3 selector, es decir, el objeto con image3 ID.

bind, en este caso, no es la función bind, sino que forma parte de las opciones que se pasan a girar.

Los corchetes indican [foo, bar] una matriz literal de foo y bar. llaves {foo: "foo", barra: "barra"} son un objeto literal con propiedades foo y bar

.
  1. La declaración termina en el primer punto y coma. rot se le asigna el valor que rotate() retornos (que, en este caso, es el mismo que el resultado de $('#image3'), debido a jQuery sintaxis de encadenamiento de métodos).todo entre rotate( y el siguiente ) son solo argumentos pasados ​​a rotate().

  2. Sí, [0] es el acceso a la matriz. rot[0] se refiere al primer elemento ("0") de la matriz rot.

  3. Aquí, { maxAngle:25, minAngle:-55, bind: ... } es un "Objeto literal", es decirsintaxis para un objeto que tiene las propiedades maxAngle, minAngle, y bind.Si asignaste este objeto a una variable myObject (en lugar de simplemente pasarlo como argumento para rotar()), podrías acceder a sus propiedades como myObject.maxAngle, myObject.minAngle, y myObject.bind.En este caso bind no es una función, es solo el nombre de una propiedad del objeto.

Ok, la pieza que falta - así es como se utiliza el código anterior para provocar la rotación por otro elemento:

var itemYouWannaRotate = $("#imageToRotate").rotate(0);
$("#TriggerElement").click(function(){
    itemYouWannaRotate[0].rotateAnimation(90);
});

Gracias chicos, todas sus respuestas fueron de gran ayuda.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top