javascript - Onclick 函数未定义

标签 javascript jquery

我有一个表格,允许我单击一个项目并更改值。为了针对旧版浏览器(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();
 };

所以它已经走到了这一步,然后由于模糊编辑功能尚未更改而失败。

最佳答案

Any ideas what the difference is between the first click: editFunction and the second onclick='editFunction()'?

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

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

返回第一个方法。它比尝试通过将字符串粉碎在一起来创建 HTML 更干净、更安全。

关于javascript - Onclick 函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24533967/

相关文章:

javascript - 在共享主机中使用 websockets 是否有任何替代方案

jquery - 在 jquery 验证器中添加自定义方法

javascript - 如何从表格的行中收集文本?

php - POST 500 内部服务器错误 - PHP

javascript - 在 css 中的选择器不显示在所有元素和 JQuery 错误之后

javascript - 如何在 Ember 中使用 jsTree 插件

javascript - 模糊 SVG 中的边界 (Raphael.js)

javascript - 为什么只有 setDeleteAction 和 setUpdateAction?

javascript - 将arcgis js api弹出单击事件更改为右键单击

java - Struts2静态内容给出404