我正在从一个 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 显示错误:Uncaught ReferenceError: edit is not defined。
没有其他错误。
最佳答案
可能您定义的 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 中绑定(bind)事件:
$.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 错误 : Uncaught ReferenceError: edit is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234193/