Как я могу скрыть div, когда больше не зависать - PullRequest
2 голосов
/ 28 августа 2010

Я использую Jquery, чтобы скрыть показ div. Я хочу показать div, когда '.microblogpostwrapper' скрыт, а когда скрыт, скрыт. Первый бит сделан, но он не может спрятаться, когда не завис.

  $(".microblogpostwrapper").hover(function(){ 
            $(this).find(".microblogpostactions").show();
                                });

Ответы [ 3 ]

4 голосов
/ 28 августа 2010

Обработчик .hover() сработает один раз для mouseenter и один раз для mouseleave.

$(".microblogpostwrapper").hover(function(){ 
    $(this).find(".microblogpostactions").toggle(); // Toggle the show/hide
});

Вы можете убедиться, что переключение выполняется правильно, передав логическое значение.toggle():

$(".microblogpostwrapper").hover(function( e ){ 
    $(this).find(".microblogpostactions").toggle( e.type == 'mouseenter' );
});

В качестве альтернативы вы можете передать вторую функцию в hover(), где вы будете использовать .hide().

0 голосов
/ 28 августа 2010

вы можете использовать mouseenter / mouseleave, чтобы прекратить пузыриться (повторный вызов hover при движении мыши) :::

$(".microblogpostwrapper").mouseenter(function() {
    $(this).find(".microblogpostactions").show();
}).mouseleave(function() {
    $(this).find(".microblogpostactions").hide();
});​
0 голосов
/ 28 августа 2010

jQuery's .hover() связывает два обработчика , один для «in» и другой для «out».Следующее должно достигнуть того, что вы хотите (хотя, возможно, стоит присвоить элемент, которым вы манипулируете, переменной для небольшого улучшения скорости):

$(".microblogpostwrapper").hover(
    function(){ 
        $(this).find(".microblogpostactions").show();
    },
    function(){
        $(this).find(".microblogpostactions").hide()
    }
);
...