Pregunta

he buscado SO y esta cuestión parece haber sido invitado varias veces, pero me parece que no puede conseguir que funcione en mi ejemplo.

Aquí hay un código para jugar con: http://jsfiddle.net/vol7ron/w8QsZ/2/

Lo que estoy buscando es algo similar a la de la flowplayer información sobre herramientas , donde:

  • hay un disparador que provoca que aparezca el menú cuando se cernía
  • el menú desaparece al dejar el gatillo
  • Si los elementos emergentes del usuario usando el menú (o información sobre herramientas), entonces el emergente deben permanecer abiertos

Mi conjetura es que hoverOut del gatillo debe llamar a la desaparecen usando setTimeout() con un poco de retraso, pero en mouseenter() del menú, el tiempo de espera debe ser limpiado.

Todavía estoy nuevo en jQuery y estoy seguro de dónde almacenar el timeoutID generada y donde llamarlo.

Nota:. el mismo menú se puede utilizar para múltiples disparadores


Actualización: Está bien, tengo algo de trabajo: aquí
Podría alguien por favor me ayude a limpiarlo y hacerlo más eficiente. Más importante aún, me gustaría no utilizar variables globales para el timeoutID. Tal vez hay una mejor manera de almacenarlo en el objeto?

¿Fue útil?

Solución

Me acabo de hacer algo como esto recientemente. Lo que yo haría es

var timer = setTimeout(/*blah*/);
$('#my_selector').data('timer') = timer;

Me tire la timeoutID en los datos de ese elemento y luego cada vez que tengo que hacer algo con él más tarde (clearTimeout) que puede simplemente tomar desde allí.

Nota: que utiliza este método y que trabajó para una cantidad de elementos dinámicos, que es lo que creo que usted quiere. Sólo quiero saber si usted necesita más de una explicación!

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