Ссылка CHtml возвращает null для родителя

Я создал URL-адрес с помощью 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. Что я хочу сделать, так это удалить строку, содержащую ссылку. Любой новый подход также приветствуется. Пожалуйста помоги!


person user3048231    schedule 24.12.2013    source источник


Ответы (1)


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

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

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