为什么ajax请求多次触发

时间:2019-02-10 17:49:25

标签: javascript php jquery ajax request

我在模态中有一个表单,该表单要么在单击一个按钮时保存便笺,要么在单击另一个按钮时删除便笺。这些项目将被保存/删除,但每次点击的请求数都会增加。我收到4个相同的请求,等等。如何停止此请求。我必须取消绑定吗?

$('#modal').on('show.bs.modal', function (e) {
    var origin = $(e.relatedTarget);
    var memoId = origin.attr('data-id');        

    $('#modal').click(function(event){
        if($(event.target).hasClass('memo-save')) {

            event.preventDefault();

            var memoText = $(event.target).parent().parent().find('textarea').val();

            var memo = {
                memo: memoText,
                id: memoId
            }

            $.ajax({
                type: "POST",
                url: '/memos/add-memo?memo=' +memo+'&id=' + memoId,
                data: memo,
                success: function (result) {
                    $(event.target).toggleClass('active').html('Memo Saved');
                }
            });


        } else if($(event.target).hasClass('memo-delete')) {

            event.preventDefault();

            var memoText = "";

            var memo = {
                id: memoId
            }

            $.ajax({
                type: "POST",
                url: '/memos/remove-memo?id=' + itemId,
                data: memo,
                success: function (result) {
                    $(event.target).toggleClass('active').html('Memo Deleted');
                }
            });
        }


    });
});

1 个答案:

答案 0 :(得分:1)

您可以将$('#modal').click移到$('#modal').on('show.bs.modal'之外,这样就不会在每次显示模式时都重新添加侦听器