2014-12-01 69 views
1

後,我有一個簡單的腳本,應該刪除Ajax調用後一個div是成功的:刪除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:我也嘗試過使用$(目標)一個.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:OK,我發現這是一個衝突另一個地雷劇本......對不起傢伙!

+0

的是,在你的CoffeeScript真正的縮進? – 2014-12-01 19:53:03

+0

@ muistooshort我也注意到了,但是OP提供了他的真實代碼gist https://gist.github.com/anonymous/92020cf606c85b14e843 – dfsq 2014-12-01 19:53:52

+0

@dfsq:(1)這真的應該嵌入到問題中。 (2)注意那裏沒有'var target'?無論是JavaScript還是來自CoffeeScript或者仍然缺少代碼。 – 2014-12-01 19:56:44

回答

1

應該

$(target).remove(); 

event.target是一個DOMElement。爲了使用jQuery方法,您應該將其轉換爲jQuery instance,但將其封裝到$函數中。

+0

試過但不是運氣:( – Riccardo 2014-12-01 19:38:19

+0

好吧,這很奇怪,你確定你的代碼縮進是正確的嗎?我可以看到'成功:(data) - >'應該在它前面有一個空格。檢查它? – dfsq 2014-12-01 19:42:46

+0

你的初始點是正確的(使用$(目標)而不是隻有target.remove()),然後還有一個與地雷腳本衝突...對不起,時間丟失!謝謝。 – Riccardo 2014-12-01 19:58:12

0

刪除是一個jQuery的功能,所以你必須調用它像這樣:

$(target).remove(); 

UPDATE

event.target是指元素。新增註釋裏面點擊。

試試這個:

target = $(this); 

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

試過沒有運氣:(我已經更新了這個問題。 – Riccardo 2014-12-01 19:40:33

+0

回答編輯試試吧 – 2014-12-01 19:46:28

+0

你的初步答案是正確的:)問題是我的腳本衝突...抱歉,謝謝。 – Riccardo 2014-12-01 19:58:59