使用jQuery UI Effects排队jQuery效果的问题

时间:2012-06-27 17:37:49

标签: jquery jquery-ui

在排队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

3 个答案:

答案 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()          
      });
});

示例:working example ..maybe ^_^

解释:http://www.w3schools.com/jquery/jquery_callback.asp

答案 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