Javascript错误:未捕获引用错误:未定义编辑
Javascript Error: Uncaught ReferenceError: edit is not defined
我正在从onclick事件中调用一个名为edit的函数,如下所示。
<script type="text/javascript">
$(document).ready(function () {
...
$.each(data, function (key, val) {
...
var td11 = $('<input type="button" value="Edit" onclick="edit();" />')
.attr("name",val.Id);
$(tr2).append(td11);
$(table1).append(tr2);
});
$("#cers").append(table1);
函数是在$.each循环之外,在$(document).ready内部定义的,如下所示
function edit() {
alert("Id ");
}
当我点击编辑按钮时,Chrome显示错误:未捕获引用错误:未定义编辑。
没有其他错误。
可能您定义的edit
函数不在全局范围内。它不仅应该在$.each
循环之外定义,而且应该在$(document).ready
等循环之外定义。例如,这适用于:
<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
function func () {
alert('func');
}
$(document).ready(function () {
$('<a href="#" onClick="func();">link</a>').appendTo('#container');
});
</script>
</head>
<body>
<div id="container"></div>
</body>
</html>
但最好用javascript绑定事件,在您的情况下:
$.each(data, function (key, val) {
// ... some code
var td11 = $('<input type="button" value="Edit">')
.click(edit)
.attr('name', val.Id);
$(tr2).append(td11);
$(table1).append(tr2);
});
不建议将功能(javascript)与布局(HTML)混合使用,并且随着项目范围的扩大,会带来不太理想的开发体验。最好使用jQuery绑定到该元素上的点击事件,如下所示:
$.each(data, function (key, val) {
/* . . . */
var td11 = $('<input type="button" value="Edit" />').attr("name",val.Id);
$(tr2).append(td11);
$(table1).append(tr2);
});
$("#cers").append(table1);
$('input[value="Edit"]').click( edit );
function edit() {
alert("Id ");
}
或者,使用这种样式,您甚至不需要命名函数:
$('input[value="Edit"]').click( function() {
alert("Id ");
});
但是,如果使用命名函数,则必须在绑定事件处理程序的同一范围内(即,在调用.click(...)
的同一作用域内)定义edit
。
相关文章:
- webRTC错误未定义配置
- gmaps4rails 2.4.6未捕获引用错误:未定义Gmaps
- 未捕获引用错误:未定义validateform
- 为什么我会出现此错误"未捕获引用错误:未定义标题;
- Sitecore”;未捕获引用错误:未定义MultilistWithSearch;
- Wordpress:未捕获引用错误:未定义速度
- Node.js引用错误:未定义类名
- Replace()产生“;未捕获的类型错误:未定义的不是函数“;当与零一起使用时
- 错误-未定义easeInBounce
- 未捕获的引用错误:未定义<映射键>
- 未捕获的类型错误:未定义不是上的函数.GetElementByID
- Javascript错误:未捕获引用错误:未定义编辑
- javascript onchange取消绑定错误|未定义
- requirejs优化器错误:未定义窗口
- 未捕获引用错误:未定义PrintThisPage
- JSHint 错误:未定义我的应用程序 (W117)
- 当我编写脚本时,它显示引用错误:未定义宽度
- socket.io - 引用错误:未定义 io
- 反应.js:未捕获类型错误:未定义不是一个函数
- 出现“未捕获的类型错误:未定义不是函数”控制台错误