0

首先,对不起,我不知道如何以不同的方式提出我的问题......

想象一个包含多个订单项目的客户订单表单。

为了更容易和更快地处理表单,提供了复制订单项目的功能。克隆功能会发生这种情况并且可以正常工作。必须更改克隆对象的某些 onclick 属性。例如:

// tr is an tr element of a table
$(":input[type=checkbox]", tr).each(function() {
    $(this).removeAttr("onclick").click(function() {
        func($(this));
    });
});

功能:

function func(chkbx)
{
    if (chkbx.checked) {
        // do stuff...
    } else {
        // do other stuff...
    }
}

现在的问题是:当原始 tr 对象调用该函数时,一切正常,但是当克隆/复制的 tr 调用该函数时,它总是进入 else 分支。

当然,我检查了传递的对象。从原始 tr-object 传递,它是预期的 HTMLInputElement,但从克隆的它是“正常”对象。奇怪的是,当我检查他们是否都有“已检查”属性时,他们都没有...

我只是希望该功能也能对克隆对象正常工作..

我希望有人可以提供帮助,每个人都理解我 :D 谢谢


更新:问题已解决:

$(chkbx).prop("checked")

代替

chkbx.checked

但我想知道为什么 attr() 函数确实导致未定义?

4

0 回答 0