Javascript jQuery-添加的输入将不允许我添加文本
创建输入后,它将不允许我添加文本。我正在进行一个项目,该项目允许用户通过单击添加的文本进行修改来编辑文本Javascript jQuery-添加的输入将不允许我添加文本,javascript,jquery,Javascript,Jquery,创建输入后,它将不允许我添加文本。我正在进行一个项目,该项目允许用户通过单击添加的文本进行修改来编辑文本 var $input = $("#change"); var $btn = $("#add"); var $btne = $("#edit"); var $content = $("#content"); $btne.hide(); $btn.click( function(){ var typedInfo = document.getElementById("change
var $input = $("#change");
var $btn = $("#add");
var $btne = $("#edit");
var $content = $("#content");
$btne.hide();
$btn.click( function(){
var typedInfo = document.getElementById("change").value;
var item = $('<li></li>');
item.append(typedInfo);
$content.append(item);
$content.on("click","li", function(){
});
item.click( function(){
$btne.show();
item.text(" ");
var typeNew = $('<input type="text" id="newInput" value = "edit">')
item.append(typeNew);
$btne.click( function(){
var editedInput = document.getElementById("newInput").value;
item.text(editedInput);
$btne.hide();
});
});
});
var$input=$(“#更改”);
var$btn=$(“添加”);
var$btne=$(“#编辑”);
var$content=$(“#content”);
$btne.hide();
$btn.单击(函数(){
var typedInfo=document.getElementById(“更改”).value;
变量项=$(“”);
项目.附加(类型DINFO);
$content.append(项目);
$content.on(“单击”、“li”,函数()){
});
项。单击(函数(){
$btne.show();
项目.正文(“”);
变量typeNew=$('')
项目。附加(类型新);
$btne.单击(函数(){
var editedInput=document.getElementById(“newInput”).value;
项目.文本(编辑输入);
$btne.hide();
});
});
});
项。单击
处于循环中时,始终在项中单击将创建新的输入。您可以使用JQuery检查是否仅单击:
$("some_selector").one("click",function);
您可能知道,当您单击某个元素时,单击事件会传播到文档的顶部 因此,当您单击一个新输入时,单击会传播到其父项
,并且项。单击(function(){…})
会再次被调用,代码将在另一时间执行,并重建所有当前输入区域
您必须停止单击
事件向其父母传播
typeNew.click( function(e){
e.stopPropagation();
});
完整代码
item.click(function(){
$btne.show();
item.text(" ");
var typeNew = $('<input type="text" id="newInput" value = "edit">')
item.append(typeNew);
// Click on the new input
typeNew.click( function(e){
e.stopPropagation();
});
// Click on button
$btne.click( function(){
var editedInput = document.getElementById("newInput").value;
item.text(editedInput);
$btne.hide();
});
});
项。单击(函数(){
$btne.show();
项目.正文(“”);
变量typeNew=$('')
项目。附加(类型新);
//点击新的输入
键入新建。单击(功能(e){
e、 停止传播();
});
//点击按钮
$btne.单击(函数(){
var editedInput=document.getElementById(“newInput”).value;
项目.文本(编辑输入);
$btne.hide();
});
});
成功了!谢谢检查此示例是否适用于多个已编辑的元素