アイテムを削除するためにajax呼び出しを起動するjavascript関数をリンクに起動させようとしています。
そのようです:
<a class="delete" href="@item.Product.Id">(x)</a>
十字をクリックすると、削除する製品のIDが表示されます。href属性がある唯一の理由は、値を運ぶためです。
$(document).ready(function () {
$('.delete').click(function (e) {
e.preventDefault();
var id = $(this).attr("href");
deleteItem(id);
return false;
});
});
Ajax呼び出し:要求に応じて:
function deleteItem(id) {
$.ajax({
url: "/Shoppingcart/RemoveItem",
type: "POST",
data: "id=" + id,
cache: false,
error: function (xhr, status, error) {
console.log(xhr, status, error);
},
success: function () {
$.ajax({
url: "/Shoppingcart/Index",
type: "GET",
cache: false,
error: function (xhr, status, error) {
console.log(xhr, status, error);
},
success: function (result) {
success(result);
}
});
}
});
}
成功関数は、カートの更新バージョンを取得するためにあります。そして、これは実際にはうまく機能します。ただし、サイクルの途中で奇妙なページの更新が行われます。
リンクをクリックします。
ページが更新され、アイテムは削除されません。
リンクをもう一度クリックします。
ページは更新されません。
アイテムが削除されます。
なぜ2回クリックする必要があるのですか?これを解決するにはどうすればよいですか?