首页 > 解决方案 > 为什么 jQuery .click() 仅在使用 Rails 销毁 link_to 的第二次点击时有效?

问题描述

我正在开发一个 Ruby on Rails 5.2.4.2 项目。我有一个“bio”资源”和一个表格,显示该资源的所有实例,带有 3 个按钮:每行“show”、“edit”和“destroy”。我想要做的是使用 AJAX 删除该行当我单击该行中的销毁按钮时的一个实例。

我必须说我的 jQuery 代码工作正常,但我需要在 jQuery 工作之前单击一次销毁按钮。当它开始工作时,它会与表中的所有其他销毁按钮一起工作。

更清楚地说,我想要做的效果与此视频中的效果完全相同: https ://www.youtube.com/watch?v=lyPA6kJqATo

这让我疯狂了整整 2 天。我已经尝试了数百种不同的方法来做到这一点,即使是纯 Javascript,但我仍然遇到同样的问题:我需要单击一次以“激活”删除方法。

这是我的代码的一个版本:

_biotab.html.erb:

        <% @bios.each do |bio| %>
            <tr>
                <th scope="row"> <%= bio.id %> </th>
                <td> <%= link_to bio.title, bio_path(bio), class:"post-title" %> </td>
                <td> <%= link_to 'Afficher', bio_path(bio) %> </td>
                <td> <%= link_to 'Editer', edit_bio_path(bio) %> </td>
                <td> <%= link_to 'Supprimer', bio, method: :delete, class: "delbtn", remote: true %> </td>
            </tr>
        <% end %>

销毁.js.erb

$(".delbtn").click(function(){
    $(this).closest('tr').remove();
});

我不知道发生了什么事。

标签: javascriptjqueryruby-on-railsajax

解决方案


推荐阅读