Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-添加的输入将不允许我添加文本_Javascript_Jquery - Fatal编程技术网

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();
    });
    });
    

    成功了!谢谢检查此示例是否适用于多个已编辑的元素