jquery: событие mouseout запускается даже после того, как я использовал событие click, чтобы скрыть div - PullRequest
3 голосов
/ 19 января 2011
jQuery("#na").mouseover(function()
{
    jQuery("#na").animate({width:"325px", height:"203px", left:"-40px", top:"-25px"}, 200)
});

jQuery("#na").mouseout(function()
{
    jQuery("#na").stop()
    jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
});

jQuery("#na").click(function()
{
    jQuery("#na").hide()
    jQuery("#back").show()
});

так вот в моем коде проблема в том, что когда событие click срабатывает, все в порядке, но исчезает, но в тот момент, когда вы двигаете мышью, оно снова повторяется.Я подумал, что проблема в том, что событие mouseout запускается, но я не могу понять, как это исправить.есть идеи?

Ответы [ 2 ]

0 голосов
/ 19 января 2011
jQuery("#na").click(function(e)
{   
    e.stopPropagation();
    jQuery("#na").hide()
    jQuery("#back").show()
});

Я не уверен, сработает ли это .. Теоретически это должно остановить распространение мыши, но я не уверен, остановит ли это только распространение события щелчка!

0 голосов
/ 19 января 2011

Внутри метода mouseout, проверьте, является ли «na» видимым или скрытым. Если он скрыт, ничего не делайте, иначе вы можете сделать анимацию.

EDIT:

Попробуйте свой метод мышки, как этот:

jQuery("#na").mouseout(function(){
    if(jQuery("#na").is(":visible")){
       jQuery("#na").stop()
       jQuery("#na").animate({width:"244px",height:"152px", left:0, top:0}, 200)
    }
});
...