“未捕获的TypeError:无法读取未定义的属性'createDocumentFragment'”问题

时间:2017-03-19 17:17:51

标签: javascript jquery

function addEditButton() {
    $(".editButton").remove();
    $(".transaction.highlight").removeClass('highlight');
    $(this).addClass('highlight');
    $(this).append("<input type='button' class='editButton' value='edit' />")
}

$("body").on('click', '.transaction', addEditButton());

使用上面的代码时,我收到一条错误消息“未捕获的TypeError:无法读取未定义的属性'createDocumentFragment'。

我已经尝试搜索已发布的有关此问题的一些相同问题,我现在假设错误是因为我使用“this”的方式,但我不知道如何解决问题。

如果我把所有代码都放在$(“body”)中,但是当我使用外部addEditButton()函数时,代码才能正常工作。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:6)

绑定时不要调用该函数,只需将其作为参考传递。

$("body").on('click', '.transaction', addEditButton);

答案 1 :(得分:3)

您正在分配 addEditButton 函数返回的结果,而不是对函数本身的引用。删除括号,它应该工作:

$("body").on('click', '.transaction', addEditButton);