我正在使用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);
}
});
});
答案 0 :(得分:0)
这是因为jQuery无法将click
事件绑定到动态添加的元素(正在发生的事情)。
要解决此问题,请改用on
:
$('body').on('click', '#btn_editsubmit', function() {
...
});
这将捕获click
下任何匹配的选择器#btn_editsubmit
上的body
事件。
引用相关的documentation。