recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment arrêter un événement immédiatement après la fin de son exécution

J'ai un événement qui s'affiche et se cache lorsque la souris entre et sort. Cependant, si la souris glisse plusieurs fois, il sera exécuté plusieurs fois. Comment puis-je arrêter l'événement immédiatement après l'exécution de l'événement de sortie de la souris ?

$(".target").on('mouseenter',function() {
    $(this).children('.p1').show(function(){
        $(this).addClass('animated fadeInLeft');
        $(this).removeClass('animated fadeInLeft');
    })
});
$(".target").on('mouseleave',function() {
    $(this).children('.p1').hide(function(){
        $(this).addClass('animated fadeOutLeft');
        $(this).removeClass('animated fadeOutLeft');
    })
});
ringa_leeringa_lee2720 Il y a quelques jours840

répondre à tous(5)je répondrai

  • PHP中文网

    PHP中文网2017-06-14 10:56:31

    Si vous souhaitez utiliser une méthode qui ne s'exécute qu'une seule fois, utilisez la méthode .one()就行,但是一般jQuery的动画特效一定要考虑动画队列的问题,建议在执行动画之前加上.stop() pour arrêter l'animation qui "entre dans la file d'attente d'animation mais n'est pas complètement exécutée"

    répondre
    0
  • 大家讲道理

    大家讲道理2017-06-14 10:56:31

    $(".target").on('mouseenter',function() {
        $(this).children('.p1').show(function(){
            $(this).addClass('animated fadeInLeft');
            $(this).removeClass('animated fadeInLeft');
        })
    });
    $(".target").on('mouseleave',function() {
        $(this).children('.p1').hide(function(){
            $(this).addClass('animated fadeOutLeft');
            $(this).removeClass('animated fadeOutLeft');
        })
        $(this).unbind();    //加一句这个取消当前dom的所有绑定事件
    });

    répondre
    0
  • 黄舟

    黄舟2017-06-14 10:56:31

    Ajoutez un e après

    on, et si vous utilisez .one()cette API, elle la supprimera automatiquement une fois.

    Référence

    répondre
    0
  • 漂亮男人

    漂亮男人2017-06-14 10:56:31

    Si vous souhaitez arrêter l'animation immédiatement, utilisez stop()

    $(this).children('.p1').stop(true, true)

    répondre
    0
  • 学习ing

    学习ing2017-06-14 10:56:31

    $(".target").off('mouseenter').on('mouseenter',function() {

    $(this).children('.p1').show(function(){
        $(this).addClass('animated fadeInLeft');
        $(this).removeClass('animated fadeInLeft');
    })

    });
    $(".target").off('mouseenter').on('mouseleave',function() {

    $(this).children('.p1').hide(function(){
        $(this).addClass('animated fadeOutLeft');
        $(this).removeClass('animated fadeOutLeft');
    })

    });

    répondre
    0
  • Annulerrépondre