一个接一个

  • 本文关键字:一个 gwt gwtquery gquery
  • 更新时间 :
  • 英文 :


我想为一对小部件一个接一个地添加渐入淡出动画。我看了文档,但是它只能第一次淡入。

$(myWidget1).fadeIn(new Function(){
      public boolean f(Event e){
            //tried to add the second fade-in for myWidget2, but no result 
            return true;
      }
});

我如何以这种方式实现一个接一个的淡入,或者有其他方法可以做到吗?

谢谢!

试试这个,使用jQuery:

    $(document).ready(function(){
        var widgets = $('.widget');
        var fader = function(widget_n){
            if (widget_n < widgets.length) {
                $(widgets.get(widget_n)).fadeIn('slow', function(){
                    fader(widget_n +1);
                });    
            }
        };
        if (widgets.length > 0) {
            fader(0);
        }
    });

查看我的示例:http://gwtquery-plugins.googlecode.com/svn/branches/droppable_1_0/demo/DraughtsSample/DraughtsSample.html

我使用fadeIn GQuery方法来淡入每一块板。您可以在这里找到代码:http://code.google.com/p/gwtquery-plugins/source/browse/trunk/droppable/sample/src/main/java/gwtquery/plugins/droppable/client/draughtssample/CheckerBoard.java#116

为什么不使用。each()函数来遍历你的"widgets"呢

var map = { 
  'mywidget1': '#mywidget1', 
  'mywidget2': '#mywidget2' 
}; 
$.each(map, function(key, value) {
  $(value).fadeIn(...);
});

或者如果它们都有一些共同之处(例如,标签组合的类别等),这将更容易。

参见.each() jQuery API

您正在重写一个不正确的方法:f(Event)用于事件,更改为f():

$(myWidget1).fadeIn(new Function(){
  public void f() {
     $(myOtherWidget).fadeIn();
  }
});

最新更新