首页 > 解决方案 > 使 javascript 方法在所有情况下都有效(在 ajax 调用之前和之后)

问题描述

我正在使用 laravel 5.5,我想做一个页面,其中只有一个显示所有附件类型项目的表格。与附件表具有基本的一对多关系。

在这个页面上,我有一个使用基本 Ajax 帖子创建新条目的字段,所有内容都在 a$(document).ready()中,代码如下:

var name = $('#name').val();
$.Ajax({
        url: '/accessory-type',
        type: 'POST',
        data: {name: name},
        success: function (data) {
            $.Ajax({
                url: null,
                type: 'get',
                success: function (data) {
                    var my_rows = $(data).find('table').html();
                    $('.accessory_type-table').html(my_rows);
            }
        });
    }
}); 

问题是:我想通过单击图标或类似的东西来删除一行,但是如果我将代码放在 a 之外,$(document).ajaxComplete则代码在 Ajax 调用后不起作用。如果我放置在 中$(document).ajaxComplete,则代码在没有 Ajax 调用的情况下无法工作。

代码完全一样,所以我不想重复两次。

如果我为它创建一个函数,问题仍然存在,我可以在哪里放置我的click()方法以使其在所有情况下都能正常工作?

这是我要调用的代码:

$(document).ajaxComplete(function () {
    $('.fa-trash').click(function () {
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
        $.Ajax({
            type: "DELETE",
            url: "/accessory-type/" + $(this).attr('id'),
            success: function (data) {
                $.Ajax({
                    url: null,
                    type: 'get',
                    success: function (data) {
                        var table = $(data).find('table').html();
                        $('.accessory_type-table').html(table);
                    }
                });
            }
        });
    })
})

我正在接受培训,所以任何帮助/最佳实践/建议或任何东西都很好,不要犹豫!:)
谢谢你的帮助

标签: javascriptjqueryajaxposthttp-delete

解决方案


推荐阅读