在排队jQuery Effects和jQuery UI Effects时我真的很困惑。当我做的时候
$('#div_id').effect('bounce').effect('shake').fadeOut();
div首先反弹而不是淡出但是抖动被省略。
调用
$('#div_id').effect('bounce').effect('shake');
一切都像我预期的那样(第一次反弹而不是震动)。
另外
$('#div_id').effect('bounce').fadeOut();
就像预期的那样工作
这是一个完整的例子:
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
var square = $('#square');
$("#button_1").click(function() {
square.effect('bounce'); // ok
});
$("#button_2").click(function() {
square.effect('bounce').effect('shake'); // ok (bounces first, than shakes)
});
$("#button_3").click(function() {
square.effect('bounce').fadeOut(); // ok (bounces first, than fades out)
});
$("#button_4").click(function() {
square.effect('bounce').effect('shake').fadeOut(); // fail (bounces first, than fades out)
});
});
</script>
</head>
<body>
<p></p><p></p><p></p><p></p>
<div id="square" style="width: 100px; height: 100px; background: blue; position: relative;"></div>
<button id="button_1">bounce</button>
<button id="button_2">bounce shake</button>
<button id="button_3">bounce fadeOut</button>
<button id="button_4">bounce shake fadeOut</button>
</body>
</html>
任何帮助都非常感谢
感谢Björn
答案 0 :(得分:3)
beaviour似乎是jQuery中的一个错误
可能的解决方法是
$('#div_id').effect('bounce').effect('shake',function(){$(this).fadeOut()});
感谢大家的贡献和帮助!
答案 1 :(得分:2)
您可以将回调放入#button_4
$("#button_4").click(function() {
square.effect('bounce',function(){
$(this).effect('shake',{ times:3 }, 300).fadeOut()
});
});
答案 2 :(得分:1)
不确定那里有什么问题,但我建议明确地使用回调:
var square = $('#square');
$("#button_1").click(function() {
square.effect('bounce'); // ok
});
$("#button_2").click(function() {
square.effect('bounce').effect('shake'); // ok (bounces first, than shakes)
});
$("#button_3").click(function() {
square.effect('bounce').fadeOut(); // ok (bounces first, than fades out)
});
$("#button_4").click(function() {
square.effect('bounce').effect('shake',function(){$(this).fadeOut()});
});
<强>更新强>
我刚刚更新了有效工作解决方案的代码。
工作示例:jsfiddle