2014-12-01 5 views
1

У меня есть простой скрипт, который должен удалить DIV после вызова Ajax успех:Удалить DIV после Ajax успеха

$ -> 
$('body').on 'click', '.add-comment', (event) -> 
    event.preventDefault() 
    body = $('#body_comment') 
    target = event.target 

    $.ajax 
    method: 'POST' 
    url: '/comments/create' 
    data: 
    body: body 
    success: (data) -> 
    target.remove() 
    error: (data) -> 
    # nothing here 

Если я:

console.log(target) 

В блоке успеха, это шоу правильный html div, но ничего не происходит, когда я делаю target.remove() или target.hide()

Где я ошибаюсь?

PS: Я пытался также использовать $ (цель) .remove(), без успеха .. новый код:

$('body').on 'click', '.add-comment', (event) -> 
    event.preventDefault() 
    body = $('#body_comment') 
    target = event.target 

    $.ajax 
    method: 'POST' 
    url: '/comments/create' 
    data: 
    body: body 
    success: (data) -> 
    $(target).remove() 
    error: (data) -> 
    # nothing here 

PPS: Хорошо, я обнаружил, что был конфликт с другой мой сценарий ... извините, ребята!

+0

Это реальная отступы в вашем CoffeeScript? –

+0

@muistooshort Я тоже это заметил, но OP предоставил свой реальный код gtt https://gist.github.com/anonymous/92020cf606c85b14e843 – dfsq

+0

@dfsq: (1) Это действительно должно быть встроено в вопрос. (2) Обратите внимание, что там нет «var target»? Либо, что JavaScript не поступал из CoffeeScript, либо еще отсутствует код. –

ответ

1

Это должно быть

$(target).remove(); 

event.target является DOMElement. Чтобы использовать методы jQuery, вы должны преобразовать его в jQuery instance, но обернув его в функцию $.

+0

Пробовал, но не повезло :( – Riccardo

+0

Хорошо, это странно. Вы уверены, что отступы вашего кода верны? Я вижу, что «успех: (data) ->' должен иметь еще одно пространство перед ним. проверьте его? – dfsq

+0

Ваша начальная точка была правильной (используйте $ (target) вместо target.remove()). Тогда был конфликт с моим скриптом ... извините за потраченное время! Спасибо. – Riccardo

0

Remove функция JQuery, так что вы должны назвать его так:

$(target).remove(); 

UPDATE

event.target ссылается на элемент щелкнул внутри .Add-комментарий.

Попробуйте это:

target = $(this); 

success: (data) -> 
target.remove() 
+0

Пробовал без везения :(Я обновил вопрос. – Riccardo

+0

Ответ отредактировал try –

+0

Ваш первоначальный ответ был прав: проблема была в конфликтах с моими скриптами ... извините! Спасибо. – Riccardo

Смежные вопросы