我有以下JavaScript代码:
... .on('click', '.edit', function(e) {
e.preventDefault();
var $el = $(this);
var edit_url = $el.attr('href');
var $comment_holder = $($el.closest('li'));
var $comment_item = $comment_holder.children('.comments__item');
var comment_text = $comment_item.find('.comments__text p').html();
var $edit_form = $('.comments form').clone();
$edit_form.attr('action', '#');
$edit_form.find('.btn').removeClass('add-comment').addClass('edit-comment');
$edit_form.find('textarea').val(comment_text);
$comment_item.hide();
$comment_holder.append($edit_form);
$('.edit-comment').on('click', function (e) {
e.preventDefault();
var formProps = $(this).closest('form').serialize();
$.post(edit_url, formProps)
.success(function() {
var new_comment_val =$edit_form.find('textarea').val();
$comment_item.find('.comments__text p').html(new_comment_val);
$comment_holder.html($comment_item);
});
});
});
所以我的问题是:我在另一个人中注册on('click')
是否正常?每次点击on('click')
元素时,嵌入的'.edit'
都会重新注册。这对我来说有点不合时宜。