我正在尝试添加问题框,如下所示,第一个删除按钮可以正常工作。但是当我动态添加div并尝试将其删除时不起作用。。我试图提醒删除问题,但它仍然无法正常工作。有人可以帮我吗?
JS
<script type="text/javascript">
jQuery(document).ready(function(e) {
jQuery( '#add-question' ).on('click', function() {
var lastId = jQuery('.del-question').last().data('id');
var nextId = lastId+1;
var questionBox = '<div class="question-box box-1"><h2>Question 1</h2><input type="text" name="ques_title" class="ques_title" placeholder="Enter question title" value=""><div class="form-group"><a class="del-question button" href="#" data-id="1">Remove</a></div></div>';
jQuery('.question-box').after(questionBox);
return false;
});
jQuery( '#quiz-box .del-question' ).on('click', function() {
var id = jQuery(this).data('id');
jQuery('.box-'+id).remove();
return false;
});
});
</script>
HTML
<div id="quiz-box">
<div class="question-box box-1">
<h2>Question 1</h2>
<input type="text" name="ques_title" class="ques_title" placeholder="Enter question title" value="">
<div class="form-group">
<a class="del-question button" href="#" data-id="1">Remove</a>
</div>
</div>
<div class="form-group">
<a id="add-question" class="button" href="#">Add</a>
</div>
答案 0 :(得分:0)
我为您制作了一个片段。
问题是您无法将事件绑定到动态对象。 $(document).on是必需的。
此外,我使用了clone()并添加了“ renameQuestions”函数,只是为您提供了一种更好的方法来处理您想要的内容。
$(document).ready(function(e) {
function addQuestion(){
var question = $('#question-template').clone();
question.css("display","block").removeAttr('id');
$('#questions').append(question);
}
function renameQuestions(){
$('.question-box').each(function(i,v){
$(this).find('.question_id').html(i);
});
}
$('#add-question').on('click', function() {
addQuestion();
renameQuestions();
});
$(document).on('click','.del-question', function()
{
$(this).closest('.question-box').remove();
renameQuestions();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="questions">
<div class="question-box" id="question-template" style="display:none;">
<h2>Question <span class="question_id"></span></h2>
<input type="text" name="ques_title" class="ques_title" placeholder="Enter question title" value="">
<div class="form-group">
<a class="del-question button" href="#">Remove</a>
</div>
</div>
</div>
<div class="form-group" style="margin-top:20px;">
<a id="add-question" class="button" href="#">Add</a>
</div>