.stop() не работает с моим наведением, чтобы заставить работать быстрое перемещение — jQuery

#javascript #jquery

#javascript #jquery

Вопрос:

У меня проблемы с наведением курсора. Если вы быстро перемещаете мышь в область и из нее, запускается .show() , но не .hide() . Я не уверен, работает ли это в других браузерах, но это не в Chrome.

Вы можете увидеть пример по ссылке ниже. Я перепробовал все варианты true false с помощью .stop(), но это не работает. Я ценю вашу помощь и уверен, что просто делаю что-то глупое.

http://jsfiddle.net/glenn2223/xBgVe/2/

 .stop().show('slide', {direction: 'up'}, "fast", false);
  

Большое спасибо за вашу помощь,

glenn2223

Комментарии:

1. отлично работает с chrome 35.0.1916.153 m и firefox 31.0

2. Выполните жесткое обновление (ctrl f5) и посмотрите, работает ли это.

3. Легко воссоздать ошибку, просто нужно быстро навести курсор мыши, и событие не запускается.

4. Нет, жесткое обновление по-прежнему не доставляет радости

Ответ №1:

Я не совсем уверен, почему, но пока show() и hide() не работают, slideToggle работает. Кажется, это решает вашу проблему (хотя мне пришлось удалить height: auto !important из вашего css, потому что это переопределяло высоту jQuery).

http://jsfiddle.net/prankol57/YBsYh/

Javascript:

 jQuery(function () {
    $("ol.top-nav li").hover(function () {
        $(this).children('div.subl').stop().slideToggle("fast");
    });
});
  

Я полагаю, это потому, что show() и hide() не вызывают очередь анимации.

Комментарии:

1. Это решает мою проблему. Большое спасибо. Я видел, что вы имели в виду под автоматической настройкой высоты css, это портит слайд, не так ли. Это также сокращает мой код, что всегда является бонусом. МАССИВНЫЙ ТИК!! для вас