Функция Jquery должна сначала отменить другие функции - PullRequest
1 голос
/ 12 сентября 2011

У меня проблема в том, что у меня есть div, где есть три скрытых тега span (используемых в качестве меток) с jquery. Я использую функцию наведения мыши для анимации одной из этих меток.

Мне интересно,Есть способ остановить / отменить функцию, которая уже запущена.т. е. если я быстро перейду ко второму событию при наведении курсора, анимации, похоже, стоят в очереди, а это значит, что когда я уйду, анимация может продолжаться.запуск анимации там.

Ответы [ 3 ]

3 голосов
/ 12 сентября 2011

Да: функция stop.Это останавливает текущую анимацию.

Если вы хотите удалить все элементы, находящиеся в очереди в данный момент, вы должны передать первый аргумент true.Если вы хотите перейти к концу текущей анимации (обычно это хорошая идея), вы должны передать второй аргумент true.

Так что ваш вызов, вероятно, будет выглядеть примерно так:

$('#someEl').mouseenter(function() {
    $(this)
        .stop(true, true) // stop any currently existing animations 
        .animate({        // and then start a new one
            marginLeft: '20px'
        }, 250);
});
3 голосов
/ 12 сентября 2011

Да, вы можете вызвать метод .stop (), чтобы остановить любую запущенную анимацию на соответствующих элементах.

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

2 голосов
/ 12 сентября 2011

Да, в jquery есть одна функция. Попробуйте это:

$('#divId').hover(function() {
$(this).find('#img1').stop(true, true).slideUp();
$(this).find('#img2').stop(true, true).slideDown();
}, function() {
$(this).find('#img1').stop(true, true).slideDown();
$(this).find('#img2').stop(true, true).slideUp();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...