动态li标签内的按钮的onclick事件未定义

时间:2016-02-01 12:13:29

标签: javascript jquery

我试图调用一个按钮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');
                }
            }); 
        }
});

1 个答案:

答案 0 :(得分:1)

函数deleteUserdocument.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');
                                        }
                                    });
                                }
                            }
                        })
                    )
                )
            });
        });
    });
});