如图,当我点击下图中的新建分组,动态生成“ddaa”,"aa","dw"这几个p,每行p都包含文本、编辑和删除按钮,点击编辑按钮(右边第一个小图标),弹出一个编辑提示窗,编辑完成后内容会重新显示在原来的位置,但是只有最后一个“dw”能显示正常的编辑后的内容,其他的编辑后还是原来的内容,经过打印发现获取不到编辑框的val(),但是最后一个编辑框却能获取到,这是为什么啦?
代码:
$('.server-subgroup-u-edit').click(function () {
// 编辑分组弹窗
$("body").append(
"" +
"
编辑分组
" +
"
" +
"
"
);
var edit_subgroup_index=$(this).parent().parent().index();
var edit_subgroup_name=$('.server-subgroup').find('p').eq(edit_subgroup_index).find('p').eq(0).html();
$('.edit_subgroup_inp').val(edit_subgroup_name);
$('.edit-affirm-win').click(function () {
if($('.edit_subgroup_inp').val()!='') {
$('.server-subgroup').find('p').eq(edit_subgroup_index).find('p').eq(0).html($('.edit_subgroup_inp').val());
console.log($('.edit_subgroup_inp').val(),12158);
$('.show-lay').remove();
}
});


这是我这个功能的全部代码
$('.creat-ground-sp').click(function () {
// 新建分组弹窗
$("body").append(
"" +
"
新建分组
" +
"
" +
"
"
);
$('.show-creat-affirm').on('click',function () {
if ($('.new-group-inp').val() != "") {
$('.server-subgroup').append('' + $('.new-group-inp').val() + '
');
$('.show-lay').remove();
}
$('.server-subgroup-active').mouseenter(function () {
$(this).find('i').eq(0).css('visibility','visible');
$(this).find('i').eq(1).css('visibility','visible');
});
$('.server-subgroup-active').mouseleave(function () {
$(this).find('i').eq(0).css('visibility','hidden');
$(this).find('i').eq(1).css('visibility','hidden');
});
$(document).on('click','.server-subgroup-u-edit',function () {
// 编辑分组弹窗
$("body").append(
"" +
"
编辑分组
" +
"
" +
"
"
);
var edit_subgroup_index=$(this).parent().parent().index();
var edit_subgroup_name=$('.server-subgroup').find('p').eq(edit_subgroup_index).find('p').eq(0).html();
$('.edit_subgroup_inp').val(edit_subgroup_name);
$(document).on('click','.edit-affirm-win',function () {
// if($('.edit_subgroup_inp').val()!='') {
$('.server-subgroup').find('p').eq(edit_subgroup_index).find('p').eq(0).html($('.edit_subgroup_inp').val());
console.log($('.edit_subgroup_inp').val(),12158);
$('.show-lay').remove();
// }
});
$('.show-creat-cancel').on('click',function () {
$('.show-lay').remove();
});
});
$('.server-subgroup-u-delete').click(function () {
// 删除分组弹窗
$('body').append(
""+
"
"+
"
"+
"
确定删除该分组吗
"+
""+
""+
""+
""+
"
"+
""+
""
);
var subgroup_delete_index=$(this).parent().parent().index();
$('.delete-affirm-win').click(function () {
$('.server-subgroup').find('p').eq(subgroup_delete_index).remove();
$('.show-lay').remove();
})
$('.delete-group-cancel').click(function () {
$('.show-lay').remove();
});
});
});
$('.show-creat-cancel').click(function () {
$('.show-lay').remove();
});
});
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
代码逻辑太乱.
编辑弹窗提出来, 没必要点击再去append, 点击show出来就行了.
同时点击一个按钮, 再去append一个p, 再给这个p里面的元素再绑定点击事件...
这种逻辑不好, 可读性低.
确实挺乱,不过append出来的东西,你不应该直接click,要这样才行:
//QAQ我写错了,应该是楼下那样,改了下
因为你是动态加入的,所以用这个
$(document).on('click','.edit-affirm-win',function(){});