javascript - JQuery - 交换触发器类时单击监听器不触发

标签 javascript jquery ajax

我有一个 jQuery on click 监听器,用于查找类“install-plugin”。

单击时,它会将类(通过 jQuery)更改为“delete-plugin”。

反之亦然,所以有一个“delete-plugin”的监听器,当单击它时,会将类更改为“install-plugin”。

我遇到的问题是这只有效一次,虽然我可以看到页面上的类已正确更新,但 jQuery 似乎没有看到,并且仍然触发原始监听器。

(ajax 是预期的扩展功能所必需的)。是否可以让 jQuery 始终与页面上的内容保持同步而无需硬刷新页面?

$(document).ready(function() {
    $('.install-plugin').click(function() {
        var id = $(this).attr('id');
        var postData = {
            action : 'install_plugin',
        }
        $.ajax({
            method: 'POST',
            url: "/wp-admin/admin-ajax.php",
            data: postData,
            success: function(response) {
                $('#'+id).text('Delete');
                $('#'+id).removeClass('install-plugin');
                $('#'+id).addClass('delete-plugin');
            }
        });
    })

    $('.delete-plugin').click(function() {
        var id = $(this).attr('id');
        var postData = {
            action : 'delete_plugin',
        }
        $.ajax({
            method: 'POST',
            url: "/wp-admin/admin-ajax.php",
            data: postData,
            success: function(response) {
                $('#'+id).text('Install');
                $('#'+id).removeClass('delete-plugin');
                $('#'+id).addClass('install-plugin');
            }
        });
    })
});

最佳答案

使用 'on' 语法,例如$(selector).on('click', function(event){....}) 用于动态更改的元素。

.click() fails after dom change

关于javascript - JQuery - 交换触发器类时单击监听器不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40491154/

相关文章:

javascript - 告诉 forEach 等待,并避免将所有内容包装在异步函数中以使用 wait?

javascript - 如何在视频js中在时间间隔后显示弹出窗口

JavaScript:带有下拉菜单的动态导航栏会扰乱下拉元素的宽度

javascript - 如何选择具有确切类名的元素?

javascript - 使用 XHR2 请求而不是 cordova-file-transfer 将二进制数据下载到应用程序沙箱中

javascript - 显示另一个基于JS if语句的隐藏div用于选择表单

jquery - Kendo 可排序(两列): Issues moving panels

Javascript,jQuery,在另一个函数之后执行函数

javascript - 无法修改返回的 AJAX 变量

Javascript 和 AJAX,仅在使用 alert() 时有效