如何在CakePHP的JavaScript事件回调中使用多个回调

时间:2012-08-18 13:16:01

标签: cakephp-1.3

我想在触发CakePHP的 JsHelper 的事件函数时加载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。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

将加载图像添加到您想要的位置。例如。 $this->Html->image('loading.gif', array('id'=> 'loader'));

将以下内容添加到请求的options数组中:

'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,并对其执行操作。