我试图调用一个按钮onClick事件函数,它出现在li标签内,但输出是 - ReferenceError:函数名(deleteUser)没有定义?
$(document).ready(function(){
var baseUrl = 'http://localhost:9000/';
$('#btnUserList').click(function(){
$.post(baseUrl+'listUsers',function(data){
$(".listUl").empty();
for(var i in data){
$("#userRecord ul").append('<li><input type="text" size="8" value='+i+'>'+
'<input type="text" size="8" value='+data[i].firstName+'>'+
'<input type="text" size="8" value='+data[i].lastName+'>'+
'<input type="text" size="8" value='+data[i].username+'>'+
'<input type="text" size="8" value='+data[i].email+'>'+
'<input type="button" value="Delete" onClick="deleteUser('+data[i].username+')"></li>');
}
});
});
function deleteUser(username){
alert(name);
$.post(baseUrl+'deleteUser',username,function(result){
if(result == 'yes'){
$('#btnUserList').trigger("click");
alert('User Deleted');
}
});
}
});
答案 0 :(得分:1)
函数deleteUser
在document.ready
处理程序中定义,这意味着它不在全局范围内。您必须在document.ready
处理程序
$(document).ready(function() {
var baseUrl = 'http://localhost:9000/';
$('#btnUserList').click(function() {
$.post(baseUrl + 'listUsers', function(data) {
$(".listUl").empty();
for (var i in data) {
$("#userRecord ul").append('<li><input type="text" size="8" value=' + i + '>' +
'<input type="text" size="8" value=' + data[i].firstName + '>' +
'<input type="text" size="8" value=' + data[i].lastName + '>' +
'<input type="text" size="8" value=' + data[i].username + '>' +
'<input type="text" size="8" value=' + data[i].email + '>' +
'<input type="button" value="Delete" onClick="deleteUser(' + data[i].username + ')"></li>');
}
});
});
});
function deleteUser(username) {
alert(name);
$.post(baseUrl + 'deleteUser', username, function(result) {
if (result == 'yes') {
$('#btnUserList').trigger("click");
alert('User Deleted');
}
});
}
或者您可以使用jQuery创建元素
$(document).ready(function() {
var baseUrl = 'http://localhost:9000/';
$('#btnUserList').click(function() {
$.post(baseUrl + 'listUsers', function(data) {
$(".listUl").empty();
$.each(data, function(index, item) {
$("#userRecord ul").append(
$('<li />').append(
$('<input />', {text : 'text', size : '8', value : index}),
$('<input />', {text : 'text', size : '8', value : item.firstName}),
$('<input />', {text : 'text', size : '8', value : item.lastName}),
$('<input />', {text : 'text', size : '8', value : item.username}),
$('<input />', {text : 'text', size : '8', value : item.email}),
$('<input />', {
type : 'button',
value : 'Delete',
on : {
click : function() {
$.post(baseUrl + 'deleteUser', item.username, function(result) {
if (result == 'yes') {
$('#btnUserList').trigger("click");
alert('User Deleted');
}
});
}
}
})
)
)
});
});
});
});