Я использую jQuery UI .toggleClass (класс, [продолжительность]) для переключения красного фона на поле 100x100, но результаты, которые я получаю, странны. См. http://jqueryui.com/docs/toggleClass/ для справки.jQuery UI toggleClass duration ведет себя странно
Как вы можете видеть из этого примера - http://jsfiddle.net/xkrX9/ - в первого нажмите на ДИВОМ # поле переключает красный фон немедленно (без [продолжительности]), а затем переключает его снова обратно к белой после приблизительно 1 секунды без второго щелчка мероприятие. второй щелчок (без перезагрузки страницы) приводит к тому, что класс .red переключается, как и ожидалось, с длительностью 1000 мс.
Что здесь не так? Спасибо за понимание!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<style>
#box { width: 100px; height: 100px; border: 1px solid #999; }
.red { background: red; }
</style>
<div id="box"></div>
<script>
$('#box').click(function() {
$(this).toggleClass('red', 1000);
});
</script>
Совершенная, это отвечает на вопрос. Спасибо, что разъяснил Эндрю! – klicks
Спасибо. Я вижу, что css 'border' также действует аналогичным образом. Это тоже ошибка jQuery? – maan81
@ maan81 С первого взгляда это выглядит как ошибка jQuery UI, в частности, функция animateClass. Он выполняет много вызовов 'this.attr ('class')' и 'this.attr ('style')', что является наиболее вероятным виновником. – Andrew