2013-12-24 2 views
2

Я создал URL с помощью CHtml :: Ссылка так:CHtml Link возвращает нуль для родительского

CHtml::link("Remove", '#', array('class' => 'delete'))) 

Теперь, когда пользователь нажимает на нее я отправить запрос AJAX, как это:

$('.delete').click(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url:'" . $this->createUrl('//shop/shoppingCart/delete') . "', 
     type : 'GET', 
     data: {id: $position}, 
     success: function(result) { 
     console.log($(this).parent()); 
     }, 
    }); 
}); 

его всегда регистрируется "undefined", но ссылка находится внутри td Что я хочу сделать, это удалить строку, содержащую ссылку. Также приветствуется любой новый подход. Пожалуйста помоги!

ответ

3

this внутри функции успеха вызова ajax является еще одним this, чем this в функции щелчка. Таким образом, вы, вероятно, не можете найти родителя этого this.

Я думаю, вы пытаетесь найти родителя элемента для обновления html-права? Почему бы вам не использовать Chtml :: ajaxLink вместо этого, то вы можете использовать свойство update:

Chtml::ajaxLink(
    'Remove', 
    $this->createUrl('//shop/shoppingCart/delete'), 
    array(
     'update' => "$('.delete').parent()", // or anything like this 
     'data' => array(
      'id' => $position, 
     ) 
    ), 
    array(
     'class' => 'delete' 
    ) 
)