クリックイベントを共有するリンクがたくさんあるとしましょう。
<a href="#" class="do-stuff">Click me</a>
<a href="#" class="do-stuff">Click me</a>
<a href="#" class="do-stuff">Click me</a>
<a href="#" class="do-stuff">Click me</a>
$('。do-stuff')。click関数で、データベースをstuffで更新するJQuery ajax POSTリクエストを実行すると、正常な応答が得られます。ajaxが完了したら、リンクテキストの値をサーバーから返送するものに変更したいだけです...
$('.do-stuff').click(function () {
$.ajax({
type: "POST",
url: "MyWebService.asmx/DoSomething",
data: '{CurrentLinkText: "'+ $(this).text() +'"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
$(this).text(result.d);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
});
これは問題なく呼び出され、「result.d」が実際にサーバーからのテキストであることを確認しましたが、テキストは変更されていません。$(this)要素はAJAX投稿後にアクセスできなくなったと思いますか?これを回避するにはどうすればよいですか?