2016-07-05 18 views
0

すべての方法で試してみると、この権利を得るように見えることはできません。 Onclick、私は$(これ)を取って、それを私のAjax呼び出しに渡したいので、呼び出しが終わったら$(これ)に対してさらにアクションを取ることができます。ここに私のコード:

$('.but_deleteMaterial').on('click',function(e){ 
    e.preventDefault(); 

    var r = $(this); 

    $.get('/scripts/delete_material.asp?action=delete&cID='+cID,function(r){ 
     r.closest('.row').hide(); // hide the row that was deleted. 
    }); 

    }); 

あなたの助けてくれてありがとう!

+1

ハンドラ関数のパラメータから 'r'を削除するだけで、コードは正常に動作します:https://jsfiddle.net/RoryMcCrossan/8uwyqqon/。問題は単純に、あなたが渡した 'r'が外側のスコープ内に元の' r'を隠していたことです –

答えて

1

変数rを、$.get関数のコールバックで渡す関数パラメータで上書きしています。

正しいは次のようになります。

$.get('/scripts/delete_material.asp?action=delete&cID='+cID,function(data){ 
     r.closest('.row').hide(); // hide the row that was deleted. 
}); 

data(この場合)または(一般的に)コールバック関数パラメータは、サーバーサイドスクリプトで(エコー)返されるデータが含まれています。

0

rにクリックしたDOM要素が含まれているようにしたい場合。呼び出しに基づいて行を隠すために

var r = event.target; 

ajaxStopを使用してみたりajaxComplete

$(document).ajaxComplete(function(event, xhr, settings) { 
    if (settings.url === "...") { 
     /* Put your code here */ 
    } 
}); 
0

あなたはjQueryのこのオブジェクトにthisオブジェクトを設定するbindメソッドを使用することができます。作品ie9 +のみ。

$('.but_deleteMaterial').on('click',function(e){ 
e.preventDefault(); 

$.get('/scripts/delete_material.asp?action=delete&cID='+cID,function(){ 
    this.closest('.row').hide(); // hide the row that was deleted. 
}.bind($(this))); 

});

関連する問題