1

Yii新手在这里我不止一次尝试找出一种在我的CGRIDVIEW中以一种简单干净的方式包含Ajax / JS函数的方法,代码基本上是

'click'=> "function (){
    $.fn.yiiGridView.update('news-grid', {
    type:'POST',
    url:$(this).attr('href'),
    success:function(data) {
        $('#AjFlash').html(data).fadeIn().animate({
            opacity: 1.0
        }, 3000).fadeOut('slow');

        $.fn.yiiGridView.update('news-grid');
    }
})
return false;

}"

在您看来,包含此内容的最干净、最有利于性能的方式是什么?感谢您的时间 !!!

4

1 回答 1

0

我不知道,但我认为没有必要强制网格在一次操作中更新两次,我也不喜欢这样包含我的 javascript。根据我的需要,有几种方法,为了这个答案,我将向您展示最简单的方法:

在单独的文件中创建一个全局对象:

//app.js
var App = {
  updateSomething: function () {
    $.post(
      $(this).attr('href'),
      success:function(data) {
        $('#AjFlash').html(data).fadeIn().animate({
          opacity: 1.0
        }, 3000).fadeOut('slow');
        $.fn.yiiGridView.update('news-grid');
      }
    );
    return false;
  }
};

您可以通过调用CCLientScript::registerScriptFile从控制器中包含该文件

Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl."js/app.js");

在你的网格上:

'click'=> "js:App.updateSomething",

有很多更好的方法,但对于想要有某种组织的 js 初学者来说,这更简单。

于 2013-02-05T15:37:03.113 回答