GwtQuery - исчезают один за другим

Я хочу добавить постепенную анимацию для пары виджетов один за другим. Я просмотрел документацию, но он только начинает появляться.

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

Как мне добиться постепенного появления одного за другим таким образом или есть другой способ сделать это?

Спасибо!

4 ответа

Попробуйте это, используя 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() для циклического прохождения ваших "виджетов".

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();
  }
});
Другие вопросы по тегам