Stop () работает только с animate ()? - PullRequest
1 голос
/ 16 декабря 2009

У меня есть простая настройка, когда при наведении курсора на #ProductLink li открывается #ProductListing ul, а затем закрывается, когда мышь удаляется.

$(document).ready(   function() {
    $("#ProductLink").hover(
      function() {
        $('#ProductListing').slideDown(200);
      },
      function() {
        $('#ProductListing').slideUp(200);
      }
    )   } )

Это работает, но предсказуемый побочный эффект состоит в том, что многократные проходы из #ProductLink и обратно указывают на скольжение вверх и вниз. Я пытался использовать stop (), чтобы это не происходило без успеха, и мне интересно, работает ли stop () только с animate ().

Если stop () работает в этом случае, я был бы признателен за указатель в правильном направлении.

Спасибо -

1010 * джордж *

Ответы [ 2 ]

0 голосов
/ 16 декабря 2009

stop() работает с slideUp() и slideDown()

Вот так:

$("#ProductLink").hover(
    function() {
        $('#ProductListing').stop().slideDown(200);
    }, function() {
        $('#ProductListing').stop().slideUp(200);
    }
);

При использовании ползунков вы также захотите завершить текущую анимацию, поэтому вы можете передать логическое значение методу stop(), чтобы получить больше контроля:

$("#ProductLink").hover(
    function() {
        $('#ProductListing').stop(false,true).slideDown(200);
    }, function() {
        $('#ProductListing').stop(false,true).slideUp(200);
    }
);
0 голосов
/ 16 декабря 2009

Судя по документации , он останавливает любую анимацию. Я только что создал контрольный пример на своей машине, и $.stop() действительно остановил $.slideDown(), как и ожидалось.

  $("a.stop").click(function(e){
    e.preventDefault();
    $(".bigBox").stop(); // in the process of animation
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...