Javascript &引用;未捕获类型错误:无法读取属性';createDocumentFragment';“未定义”的定义;问题 函数addEditButton(){ $(“.editButton”).remove(); $(“.transaction.highlight”).removeClass('highlight'); $(this.addClass('highlight'); $(this.append(“”) } $(“正文”)。在('click','transaction',addEditButton())上;

Javascript &引用;未捕获类型错误:无法读取属性';createDocumentFragment';“未定义”的定义;问题 函数addEditButton(){ $(“.editButton”).remove(); $(“.transaction.highlight”).removeClass('highlight'); $(this.addClass('highlight'); $(this.append(“”) } $(“正文”)。在('click','transaction',addEditButton())上;,javascript,jquery,Javascript,Jquery,使用上述代码时,我收到一条错误消息“UncaughtTypeError:无法读取未定义的属性'createDocumentFragment' 我已经试着搜索了一些关于这个的问题,现在我假设错误是因为我使用“this”的方式,但我不确定如何解决这个问题 如果我将所有代码放在$(“body”).on调用中,那么代码就可以正常工作,但在使用外部addEditButton()函数时就不行了。有人能帮忙吗?绑定该函数时不要调用它,只需将其作为引用传递即可 function addEditButton()

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

我已经试着搜索了一些关于这个的问题,现在我假设错误是因为我使用“this”的方式,但我不确定如何解决这个问题


如果我将所有代码放在$(“body”).on调用中,那么代码就可以正常工作,但在使用外部addEditButton()函数时就不行了。有人能帮忙吗?

绑定该函数时不要调用它,只需将其作为引用传递即可

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());
$("body").on('click', '.transaction', addEditButton);

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

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