ajax成功后删除div

时间:2014-12-01 19:32:07

标签: javascript jquery html ajax coffeescript

我有一个简单的脚本,应该在ajax调用成功后删除div:

$ ->
 $('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:我还试过使用$(target).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:好的我发现这与另一个我的剧本有冲突......对不起伙计们!

2 个答案:

答案 0 :(得分:1)

应该是

$(target).remove();

event.target是DOMElement。为了使用jQuery方法,您应该将其转换为jQuery instance,但将其包装到$函数中。

答案 1 :(得分:0)

删除是一个jquery函数,所以你必须像这样调用它:

$(target).remove();

更新

event.target指的是在.add-comment内单击的元素。

试试这个:

target = $(this);

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