javascript - Jquery replacewith 无法正常工作

标签 javascript jquery html css

所以我有一个表,其中包含一个带有按钮的列。单击此按钮时,它会切换当前表格行的类,然后替换按钮。

$(document).ready(function() {

    $(".checkOut").click(function() {
        var currentRow = $(this).closest("tr");
        $(currentRow).removeClass("checkedIn");
        $(currentRow).addClass("checkedOut");
        $(this).replaceWith('<button title="Check In" class="checkIn" value="true" name="check_in"><img alt="Check In" src="../images/check.png"></button>');
    } );

    $(".checkIn").click(function() {
        var currentRow = $(this).closest("tr");
        $(currentRow).removeClass("checkedOut");
        $(currentRow).addClass("checkedIn");
        $(this).replaceWith('<button title="Check Out" class="checkOut" value="true" name="check_out"><img alt="Check Out" src="../images/minus.png"></button>');
    } );

});

初始点击似乎工作正常。但是,当我单击将状态更改回原始状态时,它似乎不起作用。我认为这是 replaceWith 的问题。非常感激任何的帮助!

最佳答案

因为您要动态添加“ checkin ”按钮(当您单击“ checkout ”按钮时),所以您的点击事件监听器不会附加到它。您可以改用 live:

$(document).ready(function() {
    $(".checkOut").live("click", function() {
        //Your event handler code
    });

    $(".checkIn").live("click", function() {
        //Your event handler code
    });
}

两者都需要使用 live,因为在第一次替换之后,一个新的 .checkOut 元素会动态添加到页面中。

关于javascript - Jquery replacewith 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7095663/

相关文章:

javascript - CakePHP REST API 为 AJAX 提供 403 但不为 cURL

jquery - 如何将图像添加到文本框自动完成源

javascript - .html 不采用样式表类

html - 如何在 HTML 中将 3 个对象并排放置

javascript - 更改事件触发 jquery 处理程序但不触发 javascript 处理程序

javascript - 使用 JavaScript 提取标题的同源策略

javascript - 如何在 Chrome 或 Firefox 的 Mac 上查找显示器的中心 (x,y) 像素?

javascript - 如何从 Javascript 中的动态选择中删除重复值?

javascript - 如何使用 on() 撤消 jQuery 的 one()?

jquery - 如果包含的单元格为空,则使用 jQuery 隐藏表格列