我已经通过网站上的许多问题来解决同样的事情,但我做不到
我在代码中的onClick事件中在控制台窗口中收到以下错误:
1未捕获的ReferenceError:未定义SetName
从这一行:
$("#lstResults").append("<li><a href='#' onClick='SetName()'>" + data.d[i].title + "</" + " a>" + "</" + "li>");
Run Code Online (Sandbox Code Playgroud)
我已经通过Uncaught ReferenceError工作:$未定义?试图找到问题和其他几个没有运气的人.
我试过了:
我真的被卡住了,所以任何帮助都会受到赞赏!
码:
<head runat="server">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="CSS/jquery-ui-1.12.1.css" rel="stylesheet" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="CSS/basics.css" rel="stylesheet" />
<link href="CSS/fonts.css" rel="stylesheet" />
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
$(function () { // this will be called when the DOM is ready
function SetName() {
alert("I hit this!");
}
function findAll(str) {
if (str.length > 2) {
var param = { "searchString": str };
console.log(str.length);
console.log(param);
$.ajax({
type: 'POST',
url: 'adminRightsWebForm.aspx/SearchAppJ',
data: JSON.stringify(param),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function (data) {
$("#lstResults").empty();
for (i = 0; i < data.d.length; i++) {
alert(data.d[i].title);
$("#lstResults").append("<li><a href='#' onClick='SetName()'>" + data.d[i].title + "</" + " a>" + "</"
+ "li>");
}
if (data.d.length == 0)
$("#lstResults").empty();
},
error: function (request, status, error) {
alert(request.responseText);
}
});
}
else
$("#lstResults").empty();
}
});
</script> </head>
Run Code Online (Sandbox Code Playgroud)
这实际上是一个范围问题.
该SetName()函数在$(function(){/* ... */})匿名函数内定义,但在窗口级别无法访问,onClick隐式引用.
将函数移到jQuery之上应该解决这个问题.
| 归档时间: |
|
| 查看次数: |
2372 次 |
| 最近记录: |