El código solo se ejecuta una vez, pero debe continuar

El siguiente código debería evitar que la ventana emergente se cierre si pasa el mouse sobre ella o el botón; sin embargo, solo funciona una vez al recargar y luego deja de funcionar.

$('.popover3-test').popover({
    placement:'bottom',
    template: $('.popover2'),
    trigger: 'manual',

    }).mouseenter(function(e) {
    $(this).popover('show');

    var t = null;

    $(".popover2, .popover3-test")
        .mouseleave(function() {
            t = setTimeout(function() {
                $('.popover2').hide();
            }, 1000); // Or however many milliseconds
        })
        .mouseenter(function() {
            if(t !== null)
                clearTimeout(t);
         });
    });

Demostración: http://jsfiddle.net/MnpWV/1/

preguntado el 04 de julio de 12 a las 00:07

Por favor reformule su pregunta -

funciona una vez, luego deja de funcionar, quiero que siga funcionando. -

@watson quita el clearTimeout entonces funcionará. jsfiddle.net/MnpWV/2 -

Esta no era una pregunta real hasta la edición de Rob. ¿Por qué Rob debería haber sido el que fue a tu violín y copió/pegó el código? No es tan difícil y es un requisito para cumplir con las pautas. -

@Greg, podría valer la pena poner comentarios constructivos y tratar de encontrar una solución en lugar de intentar con las personas aquí por errores simples. -

1 Respuestas

prueba esto:

$(".popover2, .popover3-test")
        .mouseleave(function() {
           $('.popover2').delay(1000).fadeOut('1000');
        }
});

http://jsfiddle.net/MnpWV/8/

actualizar:

$(".popover2").hover(function(e) {
    $(this).show()
}, function() {
    $('this').delay(1000).fadeOut('1000');
})

http://jsfiddle.net/MnpWV/16/

eliminar el .popover3-test que desencadena la mouseleave evento.

Respondido 04 Jul 12, 00:07

si pasa el mouse sobre el popover ('.popover2'), debería permanecer visible. - Dezman

ahora, si nunca pasa el cursor sobre .popover2, nunca desaparece. - Dezman

Creo que el problema con mi código original es que quizás haya dos mouseenters. - Dezman

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.