【问题标题】:Why ajax reloads the page为什么ajax会重新加载页面
【发布时间】:2021-05-14 11:08:37
【问题描述】:

我有一个 ajax + jquery 脚本,当我执行它时(单击按钮)它会重新加载页面。

脚本

jQuery(document).ready(function($) {
$(document).on('click', '.image-remove-btn', function (e){
    var img = $(this).closest('.thumbs');
    var id = img.attr('data-id');
  
    $.ajax({
        url: admin_url('admin-ajax.php'),
        type: 'POST',
        data: {deletedId : id},
        success: function( data ) {
            img.remove();
        }
    });
});
});

应删除的元素的 HTML:

<div class="thumbs ui-droppable">
                <div class="inner ui-draggable ui-draggable-handle" data-thumb="0">
                    <img data-id="32949" src="https://badzingerauto.com/wp-content/uploads/2021/05/NISSAN__QASHQAI__1-5_dCi_106_Acenta__inc-__inc-__2009__BC501CF-e01-350x205.jpg">
                    <div class="inner-hover">
                       <button class="image-remove-btn butterbean-remove-image"> <!-- <i class="fa fa-arrows"></i> Font Awesome fontawesome.com -->
                    </div>
                </div>
            </div>

【问题讨论】:

  • 按钮是否位于&lt;form&gt; 中?显示的基本代码不会导致页面自行重新加载
  • 评论ajax请求并检查是否点击事件重新加载页面?
  • 请在您的问题中分享完整的代码。
  • 什么是.image-remove-btn,它位于何处? -> How do I ask a good question? -> minimal reproducible example
  • @Greg-- 没有 ajax 的脚本不会重新加载页面。它确实是工作(删除图像)但是当我保存更改时 - 图像不会被删除,所以我认为 ajax 会帮助我

标签: javascript jquery ajax wordpress


【解决方案1】:

我认为@Charlieft 是正确的,您可以按如下方式更改代码以防止重新加载

jQuery(document).ready(function($) {
  $(document).on('click', '.image-remove-btn', function (e){
    e.preventDefault();
    var img = $(this).closest('.thumbs');
    var id = img.attr('data-id');
  
    $.ajax({
        url: admin_url('admin-ajax.php'),
        type: 'POST',
        data: {deletedId : id},
        success: function( data ) {
            img.remove();
        }
    });
  });
});

【讨论】:

  • 还有一个问题:我不知道在url 中粘贴什么。 admin_url('admin-ajax.php') 得到控制台错误,ajaxurl 也得到它。错误是:load-scripts.php?c=0&amp;load[chunk_0]=jquery-core,jquery-migrate,utils&amp;ver=5.6.4:2 POST https://badzingerauto.com/wp-admin/admin-ajax.php?_fs_blog_admin=true 400
  • 你需要注册一个ajax动作来调用,我建议看一个教程看看它是如何工作的。像这样tutorial。请注意,您可能只希望授权用户能够执行此操作
猜你喜欢
  • 2013-09-09
  • 2018-07-21
  • 1970-01-01
  • 2011-10-09
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
相关资源
最近更新 更多