未定义Onclick函数

Onclick function not defined

本文关键字:函数 Onclick 未定义      更新时间:2023-09-26

我有一个表,允许我单击一个项目并更改值。为了优化它的旧浏览器(IE8),我改变了如何表是从追加<td>元素每次绘制,连接一个字符串,然后追加项目一次。然而,在我的新字符串追加附加的函数没有被调用。

下面是我工作的代码片段:

             $('<td>', {
                 'text': value,
                 'class': 'editableCell',
                 'data-hd': currentCell.hd,
                 'data-cl': currentCell.cl,
                 'click': editFunction
            }).appendTo(tr_body);

我把它改成:

tableString += '<td class="selectable" data-hd="' + currentCell.hd+ '" data-cl="' + currentCell.cl+ '" onclick="editFunction()">' + value + '</td>';

现在当我点击元素的时候我得到了一个Uncaught ReferenceError: blurEdit is not defined

知道第一个click: editFunction和第二个onclick='editFunction()'有什么区别吗?

函数是:

 var editFunction= function () {
     $(this).off();
     var value = $(this).text();
     var inp = $('<input>', {
         'type': 'text',
         'value': value,
         'class': 'form-control',
         'blur': blurEdit
     });
     $(this).html(inp);
     inp.focus();
 };

所以它走了这么远,然后失败的blurEdit函数没有改变

任何想法是什么区别是第一次点击:editFunction和第二个onclick='editFunction()'?

将对函数的引用(来自当前作用域链)分配给事件处理程序。

另一个创建一个新函数,尝试在不同的作用域链(内部事件处理程序作用域,类似于"onclick函数本身,元素对象的属性,窗口")中按名称访问前面提到的函数。

回到第一个方法。这比把字符串串在一起创建HTML要干净和安全得多。