javascript - 没有从第二个 onchange 调用复选框回调函数

标签 javascript jquery html checkbox

我正在运行时根据 UI 中的某些操作动态创建一个表,如下所示

     $(figure.children.data).each(function (i, Column) {
            if (i != 0) {
                var callBack = function () {
                    RemoveColumn(figure, Column.figure.id);
                }

                var input = $("<input>")
                            .attr("type", "checkbox")
                            .attr("checked", "checked")
                            .on("change", callBack);

                var tr = $('#tblEntity').append('<tr>');

                $("<td>").appendTo(tr).append(input);

                $("<td>").appendTo(tr).append(Column.figure.text);
            }
 });

RemoveColumn函数如下。

function RemoveColumn(figureToBeModified,columnID) {    
    $(figureToBeModified.children.data).each(function (i, column) {
        if (column.figure.id == columnID) {
            figureToBeModified.hide(column.figure);

            figureToBeModified.remove(column.figure);
        }
    });
}

问题: 当我第一次取消选中复选框时它工作正常(意味着 RemoveColumn 函数被调用),但如果我选中或取消后记选中复选框 RemoveColumn 未被调用。

最佳答案

var tr = $('#tblEntity').append('<tr>');会将 tr 添加到表中,但不会将其分配给 tr。

我想你的意思是这样的:

    var tr = $("<tr>");
    $('#tblEntity').append(tr);    
    $("<td>").appendTo(tr).append(input);
    $("<td>").appendTo(tr).append(Column.figure.text);

此外,如果像这样定义 RemoveColumn 不是更容易吗:

function RemoveColumn(figureToBeModified, column) {
    figureToBeModified.hide(column.figure);    
    figureToBeModified.remove(column.figure);
}

然后这样调用:

var callBack = function () {
    RemoveColumn(figure, Column);
}

如果删除和隐藏的行为类似于 jQuery 的删除和隐藏,那么为什么要隐藏它只是为了在下一行将其一起删除?

这些都不能直接解决您的问题,我需要有关您的图形数据的更多信息才能理解它,但也许这会帮助您更接近您想要的位置。

关于javascript - 没有从第二个 onchange 调用复选框回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29762144/

相关文章:

javascript - 拉斐尔 Js : How to re-arrange the elements inside a raphael set in a curve path

java - 如何找到 http 请求的 IP 地址或位置?

javascript - jQuery 或 JavaScript 中的双重延迟

jquery - Chrome 在 css 转换方面有问题吗?

javascript - 在链接悬停时突出显示特定的 div (tds)

html - 绝对div放在div之上

javascript - 打开页面时如何避免Font Awesome加载/"jumping"?

Javascript 根据 pray_name 获取每个值

html - 当浏览器使用密码管理器自动完成时标签不 float

html - html元素中data-attribute=false与data-attribute ="false"有什么区别吗?