jQuery提交按钮第一次工作但第二次不工作

时间:2019-09-12 11:06:41

标签: jquery

我正在使用jquery的Edit功能。单击提交按钮后,这是第一次工作。但是第二次不能工作。

$('#btn_editsubmit').click(function() {
  var ans_id = $(this).data('ans_id');
  var name = $(this).data('name');
  var question_id = $(this).data('question_id');
  var e_val = 'editor' + ans_id;
  var d_text = CKEDITOR.instances[e_val].getData();
  // alert(d_text);

  $.ajax({
    type: "post",
    url: '<?= base_url('
    answer ') ?>',
    data: {
      d_text: d_text,
      question_id: question_id,
      ans_id: ans_id
    },
    success: function(result) {
      //alert(result);
      console.log(result);
      myObj = $.parseJSON(result);
      var d = new Date(myObj["added_on"]);
      var day = d.getDate();
      var month = d.getMonth() + 1;
      var year = d.getFullYear();

      if (day < 10) {
        day = "0" + day;
      }

      if (month < 10) {
        month = "0" + month;
      }

      var date = month + " " + day + ", " + year;
      var htm = '<div class="answer" id="answer<?= $answer['
      id '] ?>"><div>' + myObj["answer"] + '</div><div class="blog-content"><span class="post-date">' + date + '</span><a href="#" class="post-author">By ' + name + '</a> <?php if ($answer['
      user_id '] == $this->session->userdata("UserId")) { ?><span><a href="javascript:void(0)" class="btn-edit" data-toggle="collapse" onclick="btn_edit(' + ans_id + ')" data-target="#Edit" data-q_id="<?= $answer['
      id '] ?>">Edit</a></span><div id="Edit" class="collapse"><textarea id="' + e_val + '">' + myObj["answer"] + '</textarea><button id="btn_editsubmit" data-question_id="' + question_id + '" data-ans_id="' + ans_id + '" type="button" class="btn btn-info mt-4">Submit</button></div><?php } ?></div></div>';
      //alert(htm);
      $('#answer' + ans_id).html(htm);
    }
  });
});

1 个答案:

答案 0 :(得分:0)

这是因为jQuery无法将click事件绑定到动态添加的元素(正在发生的事情)。

要解决此问题,请改用on

$('body').on('click', '#btn_editsubmit', function() {
    ...
});

这将捕获click下任何匹配的选择器#btn_editsubmit上的body事件。

引用相关的documentation