1

CakePHPのJsHelperのイベント関数をトリガーする際にloading divを入れたいです。これが私のコードです:

$this->Js->get('#MonthlyProgressProjectId')->event('change',
            $this->Js->get('#MonthlyProgressAddForm')->request(array(
                'action' => 'get_institution'), array(
                'update' => '#institution',
                'dataExpression'=>TRUE, 
                'method'=>'POST',
                'async'=>TRUE,
                'data' => $js->serializeForm(array('isForm' => TRUE, 'inline' => TRUE)))));

ご覧のとおり、フォームを取得してrequest()関数を使用しています。しかし、この関数をトリガーしている間、読み込み中の div を表示したいと思います。どうやってやるの?

4

1 に答える 1

0

読み込み中の画像を希望の場所に追加します。例えば $this->Html->image('loading.gif', array('id'=> 'loader'));

リクエストのオプション配列に以下を追加します。

'before' => $this->Js->get('#loader')->effect('fadeIn', array('buffer' => false));
'complete' => $this->Js->get('#loader')->effect('fadeOut', array('buffer' => false));

これでほぼ完了です。#loader最初にページにアクセスしたときに非表示にしたいので、CSSに追加します#loader { display: none; }

これで、イベントがトリガー#loaderされると、読み込み中の画像とともにフェードインします。そして、それが完了すると、それは再びフェードアウトします。また、その周りにdivが必要な場合は、IDでその周りにdivをラップし、その上でアクションを実行します。

于 2012-08-19T13:38:04.577 に答える