javascript - 为什么 ajax 请求会多次触发

标签 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');
                }
            });
        }


    });
});

最佳答案

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

关于javascript - 为什么 ajax 请求会多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54619233/

相关文章:

javascript - 从自定义事件返回 false 会在新的 jquery 版本中产生错误

javascript - Cube.js - 无法连接 2 个或更多表,但不断收到 "Can' t find join path to join“错误

javascript - 如何检测溢出的 HTML 元素

php - 用php计算不同数据库的产品总价

php - SQL查询: Data transfer from one database to another database

javascript - 如何删除元素内的跨度?

javascript - 如何使用某些动态类获取输入的最后一个值?

php - 在每个产品 ID/WP 的 WooCommerce 产品价格后添加文本

php - 从jquery mobile中的下拉列表中获取值并保存到mysql数据库

javascript - 在同一新选项卡中打开外部链接