简体   繁体   English

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

[英]onclick event for button inside dynamic li tag is not defined

Am trying to call a button onClick event function, which is present inside the li tag, but the output is - ReferenceError: function name (deleteUser) is not defined ? 是否正在尝试调用li标签内的按钮onClick事件函数,但输出为-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');
                }
            }); 
        }
});

The function deleteUser is defined inside the document.ready handler, which means it's not in the global scope. 函数deleteUser是在document.ready处理程序内定义的,这意味着它不在全局范围内。 You have to define it outside the document.ready handler 您必须在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');
        }
    });
}

Or you could create the elements with jQuery instead 或者您可以使用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');
                                        }
                                    });
                                }
                            }
                        })
                    )
                )
            });
        });
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM