javascript - 点击功能不适用于第二次点击

标签 javascript jquery

我的代码有一个问题。我创建了这个 DEMO 来自 codepen.io

在此演示中,您可以看到有两个编辑按钮。当您单击第一个编辑按钮时,编辑文本区域将在那里。如果您单击蓝色取消按钮并再次单击第一个编辑按钮,问题就在这里,它不起作用。这里有什么问题?任何人都可以在这方面帮助我吗?

JS

$(document).ready(function() {
   $("body").on("click", ".editBtn", function(event) {
      event.target.disabled = true;
      var ID = $(this).attr("id");
      var currentMessage = $("#messageB" + ID + " .postInfo").html();
      var editMarkUp = '<div class="edBtnS"><div class="edSv">Save</div><div class="cNeD" id="'+ ID +'">Cancel</div></div><textarea rows="5" cols="80" id="txtmessage_' + ID + '">' + currentMessage + '</textarea>';
      $("#messageB" + ID + " .postInfo").html(editMarkUp);
      var data = $('#txtmessage_' + ID).val();
       $('#txtmessage_' + ID).focus();
       $('#txtmessage_' + ID).val(data + ' ');
   });
   $("body").on("click", ".cNeD", function(event) {
      event.target.disabled = false;
        var ID = $(this).attr("id");
        var currentMessageText = $("#txtmessage_" + ID).html();
        $("#messageB" + ID + " .postInfo").html(currentMessageText);
    });
});

HTML

<div class="container">
   <div class="postAr" id="messageB1">
      <div class="postInfo">
         fdasfads fasd fadsf adsf adsf adsf asd fasd f dfsa
      </div>
      <div class="editBtn" name="edit" id="1">Edit1</div>
   </div>
</div>
<div class="container">
   <div class="postAr" id="messageB2">
      <div class="postInfo">
         fdasfads fasd fadsf adsf adsf adsf asd fasd f dfsassss
      </div>
      <div class="editBtn" name="edit" id="2">Edit2</div>
   </div>
</div>

最佳答案

因为编辑按钮被禁用了:

event.target.disabled = true;

你可以在.cNeD点击事件中添加:

$(".editBtn").prop('disabled', false);

DEMO from codepen.io

编辑:

只启用一个编辑按钮(参见 u_mulder 评论):

$(this).closest('.container').find(".editBtn").prop('disabled', false);

DEMO from codepen.io

关于javascript - 点击功能不适用于第二次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949893/

相关文章:

javascript - 在 Javascript 中上传多张图片时 filereader 结果顺序发生变化

javascript - 传递变量以追加

jquery - 如何将CSS仅应用于我在循环中单击的按钮旁边的元素

javascript - p 造型没有出现。一个一个打出来

javascript - Grunt imagemin - 观看多个文件/文件夹优化单个文件?

javascript - 为什么 Object.keys 不能与 DOM 节点一起使用?

javascript - 在任何情况下我应该使用 in 运算符而不是 hasOwnProperty()?

javascript - 将 jQuery Text Complete 与包含键和值的数组一起使用

javascript - 如果包含一个变量,并且一个实例设置了一个具有相同名称的属性,那么该属性到哪里去了?

javascript - 我无法使用 .reset() 清除表单