我具有切换淡入淡出效果,但是当您多次单击按钮时,淡入淡出不止一次。 (因此,如果我快速单击淡入淡出ID 20次,它将多次淡入和淡出)我将如何停止并使其变为仅在动画完成时才切换淡入淡出?我试图获取当前值并执行if语句,但是它没有用:*(
谢谢
jQuery.fn.fadeToggle = function(speed, easing, callback) {
return this.animate({opacity: 'toggle'}, speed, easing, callback);
};
$(document).ready(function() {
$('.open').click(function() {
$('#fadeMe').next().fadeToggle('slow');
});
});
最佳答案
您需要检查元素是否未设置动画,如果是,请调用.animate:
<body>
<button class="open">open</button><br>
<div id="fadeMe">fade me!</div>
<style>#fadeMe {
width:20em;
height:10em;
background:black;
color:#fff;
}</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
jQuery.fn.fadeToggle = function(speed, easing, callback) {
return this.animate({opacity: 'toggle'}, speed, easing, callback);
};
$(document).ready(function() {
$('.open').click(function() {
var el = $('#fadeMe').next();
if ( !el.is(':animated') ) {
$(el).fadeToggle('slow');
}
});
});
</script>
</body>
演示:http://jsbin.com/irare
关于jquery - 停止jquery函数执行多次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1523098/