2011-01-17 17 views
12

Tengo una pregunta con respecto a jQuery. Tengo un li que se desliza, ahora quiero recordar si se ha deslizado, así que quiero establecer una variable booleana slidedOut.jquery, agregar variable al elemento?

¿Es posible simplemente agregarlo al elemento? ¿O debería agregar un elemento oculto div o algo así a?

Respuesta

21

Puede usar .data() para esto.

Algo así como

$("#yourli").data("slidedOut", false); 
+0

se puede obtener el valor de uso de 'valor var = $ ("# yourli") de datos ("slidedOut.");' –

1

Usando jquery data se considera la forma estándar para hacerlo - aunque hay un montón de otras maneras de hacerlo.

Una alternativa es simplemente:

$("#myli")[0].slidedOut = true; 
alert($("#myli")[0].slidedOut); 
+1

Su ejemplo no funcionará. Usted crea un nuevo objeto cada vez que llama a '$()', por lo que establecer una propiedad uno no afectará a ningún otro, incluso cuando sea el mismo elemento seleccionado. Tenga en cuenta que '$ ('# myli') [0] .slidedOut' * * funcionaría, pero no es una buena práctica. – lonesomeday

+0

Gracias. Estas en lo correcto. Lo he actualizado – Aliostad

1

Otra opción es el uso de clases CSS. Esta particularidad es útil si realmente no guarda los datos (solo una bandera), o si desea cambiar el diseño de estos <li> o sus hijos.

Cuestiones relacionadas