javascript - ajax 请求在 laravel 中只能运行一次

标签 javascript jquery ajax laravel-5

起初我的ajax请求工作得很好,但是在使用ajax请求加载部分页面后,ajax停止工作(不仅是ajax,而是元素上的整个操作),为什么?

我的html代码:

<td>

                    @foreach($file_defects[$revision->revision_id] as $file_defect)
                    <a href='http://localhost/sponaDP/laravel/public/docs/revision_intervals/{{ $revision->rev_interval_id . '/' . $revision->date_of_revision->format('d.m.Y') . '/defects/' .
                                   $file_defect->getFilename() }}' target="_blank">
                        {{$file_defect->getFilename()}}
                    </a>
                    <a class="destroyFileFromRevision" id="{{$file_defect->getPathname()}}"  style='color:red;'><span style="display:none;" class="rev">{{$revision->revision_id}}</span><span class='glyphicon glyphicon-remove'></span></a>
                    <br>
                    @endforeach
</td>

我的ajax:

$(".destroyFileFromRevision").click(function () {
    var filename = this.id;
    var rev = $(this).children('.rev').text();
    $.ajax({
        type: "POST",
        url: "http://localhost/sponaDP/laravel/public/revisions/destroy-file",
        data: 'filename=' + filename + '&rev=' +rev,
        beforeSend: function () {
            $(".destroyFileFromRevision").parent('td').html(
                    "<i class='fa fa-spinner fa-spin' aria-hidden='true' \n\
                    ></i>");
        },
        success: function (data) {
            $(".fa").parent('td').html(data);
        }
    }, 'json');
});

这些是ajax请求返回的html数据(url:.../destroy-file):

@foreach($file_defects[$revision->revision_id] as $file_defect)
<a href='http://localhost/sponaDP/laravel/public/docs/revision_intervals/{{      $revision->rev_interval_id . '/' . $revision->date_of_revision->format('d.m.Y') . '/defects/' . $file_defect->getFilename() }}'  target="_blank">
{{$file_defect->getFilename()}}
</a>
<a class="destroyFileFromRevision" id="{{$file_defect->getPathname()}}"       style='color:red;'><span class='glyphicon glyphicon-remove'></span></a>
<br>
@endforeach

最佳答案

你必须让元素始终以这种方式存在 $(".destroyFileFromRevision").click(function ()

$(document).on('click', '.destroyFileFromRevision', function()

关于javascript - ajax 请求在 laravel 中只能运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38945682/

相关文章:

javascript - 当用户将鼠标悬停在某些文本上时,如何打开一个小窗口?

javascript - 如何更改自定义标签功能?

javascript - 在不重新加载页面的情况下更改 URL

javascript - 如何在ajax错误时显示文件上传错误消息?

javascript - 如何在给定时间内重新加载ajax调用函数

javascript - 是否有一个 React 生命周期方法仅在组件第一次接收到 props 时才执行某些操作?

javascript - 在 Controller 中使用服务时使用 Angular ui-router 时出现 "Unknown Provider"错误

javascript - 连接到谷歌地图网址以获取特定位置的纬度和经度时出现问题

c# - 寻找一种将视频上传到带有jQuery的youtube而不回发的方法

javascript - Phonegap-Javascript发送跨域ajax请求