¿Pueden algunos explicar este código jQuery?[duplicar]
-
19-09-2019 - |
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:
Entiendo que se está declarando una variable...putrefacción", pero parece que no puedo entender dónde termina la declaración....
Cuando se utiliza la variable, se utiliza como pudrirse[0], Que hace [0] ¿representa?¿Es esto una matriz?
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?
- 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!
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
La declaración termina en el primer punto y coma.
rot
se le asigna el valor querotate()
retornos (que, en este caso, es el mismo que el resultado de$('#image3')
, debido a jQuery sintaxis de encadenamiento de métodos).todo entrerotate(
y el siguiente)
son solo argumentos pasados arotate()
.Sí,
[0]
es el acceso a la matriz.rot[0]
se refiere al primer elemento ("0") de la matrizrot
.Aquí,
{ maxAngle:25, minAngle:-55, bind: ... }
es un "Objeto literal", es decirsintaxis para un objeto que tiene las propiedadesmaxAngle
,minAngle
, ybind
.Si asignaste este objeto a una variablemyObject
(en lugar de simplemente pasarlo como argumento para rotar()), podrías acceder a sus propiedades comomyObject.maxAngle
,myObject.minAngle
, ymyObject.bind
.En este casobind
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.