jQuery: прекратить повторять анимацию на нескольких ролловерах? - PullRequest
2 голосов
/ 02 февраля 2012

У меня проблемы с остановкой анимации ... если я переворачиваю ссылку, чтобы открыть окно 5 раз, и выключаюсь ... эффект "Показать" происходит 5 раз ... когда я его отключаю, я хочу только его показать один раз ....

Похоже, что это застревает в петле ....

Есть идеи, как остановить несколько экземпляров?

jQuery(document).ready(function(){
    jQuery('.ttip').hover(
        function() {
            var offset = jQuery(this).offset();
            console.log(offset)
            var width = jQuery(this).outerWidth();
            var tooltipId = jQuery(this).attr("rel");
            jQuery('#tooltip-container').empty().load('tooltips.html' + tooltipId).fadeIn(500);
            jQuery('#tooltip-container').css({top:offset.top, left:offset.left + width + 10}).show();
        },
        function() {
          jQuery('#tooltip-container').fadeOut(500);
        });
});

Ответы [ 2 ]

6 голосов
/ 02 февраля 2012

Вы должны использовать stop(true).

См. http://api.jquery.com/stop

1 голос
/ 17 сентября 2015

Когда Стефан говорит, заставьте анимацию перейти к концу с остановкой (true), как в этом примере, используя ваш код:

jQuery(document).ready(function(){
jQuery('.ttip').hover(
    function() {
        var offset = jQuery(this).offset();
        console.log(offset)
        var width = jQuery(this).outerWidth();
        var tooltipId = jQuery(this).attr("rel");
        jQuery('#tooltip-container').empty().load('tooltips.html' + tooltipId).stop(true).fadeIn(500);
        jQuery('#tooltip-container').css({top:offset.top, left:offset.left + width + 10}).show();
    },
    function() {
      jQuery('#tooltip-container').stop(true).fadeOut(500);
    });
});
...