Yii ajaxbutton:如何在成功回调函数中获得$(this)?

时间:2015-03-27 09:41:07

标签: javascript php yii

CHtml::ajaxButton('vote',Yii::app()->createUrl('land/Ajax'),
        array(
              'type'=>'POST',
              'data'=> 'js:{"id": '.$post->id.'}', 
              'success'=>'js:function(e){
                      console.log($(this));     // I want to control this button's silblings
                      $("input.ajaxsubmit").prop("disabled", true);
               }',
              'error'=>'js:function(e){ console.log(e); }',    
        ),
       array('class'=>'btn btn-large ajaxsubmit'));

我无法在成功函数中获取按钮本身,因为这指向xhr对象。 如何将按钮传递给成功功能? CHtml :: ajaxButton没有其他选择。

1 个答案:

答案 0 :(得分:1)

即使您使用普通按钮而不是yii ajaxButton,也无法在成功事件中访问按钮本身。我认为这个问题的一个解决方法是为按钮分配一个id ,然后使用它的id访问按钮的兄弟:

CHtml::ajaxButton('vote',Yii::app()->createUrl('land/Ajax'),
    array(
          'type'=>'POST',
          'data'=> 'js:{"id": '.$post->id.'}', 
          'success'=>'js:function(e){    

                 //You can access to button with $("#voteButton")
           }',
          'error'=>'js:function(e){ console.log(e); }',    
    ),
   array('class'=>'btn btn-large ajaxsubmit', 'id'=>'voteButton'));