Javascript 在jquery中添加和删除div无效
我正在尝试添加问题框,如下图所示,第一个删除按钮工作正常。但是,当我动态添加div并尝试删除它时,它不起作用。我尝试在删除问题时发出警告,但它仍然不起作用。有人能帮我吗 JSJavascript 在jquery中添加和删除div无效,javascript,jquery,Javascript,Jquery,我正在尝试添加问题框,如下图所示,第一个删除按钮工作正常。但是,当我动态添加div并尝试删除它时,它不起作用。我尝试在删除问题时发出警告,但它仍然不起作用。有人能帮我吗 JS <script type="text/javascript"> jQuery(document).ready(function(e) { jQuery( '#add-question' ).on('click', function() { var lastId = jQuery('.d
<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>
jQuery(文档).ready(函数(e){
jQuery(“#添加问题”)。在('click',function()上{
var lastId=jQuery('.del question').last().data('id');
var nextId=lastId+1;
var questionBox=‘问题1’;
jQuery('.questionBox')。在(questionBox)之后;
返回false;
});
jQuery('#quick box.del question')。在('click',function()上{
var id=jQuery(this).data('id');
jQuery('.box-'+id).remove();
返回false;
});
});
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>
问题1
我给你写了一个片段 问题是无法将事件绑定到动态对象。 $(文档).on是必需的 另外,我使用了clone()并添加了一个“renameQuestions”函数,只是为了给您提供一种更好的方法来实现所需的功能
$(文档).ready(函数(e){
函数addQuestion(){
var question=$(“#问题模板”).clone();
css(“显示”、“块”).removeAttr('id');
$('问题')。附加(问题);
}
函数重命名equestions(){
$(“.问题框”)。每个(函数(i,v){
$(this.find('.question_id').html(i);
});
}
$(“#添加问题”)。在('click',function()上{
添加问题();
重命名等式();
});
$(文档).on('click','del question',function()
{
$(this).closest('.question box').remove();
重命名等式();
});
});代码>
问题:
侧注的可能重复:传递到ready
回调中的第一个参数是jQuery
,因此将其命名为e
有点误导性,因为它通常与事件对象相关联,而不是。Ok,是的,我指的是你提到的@Taplar:)我根据帖子对代码进行了更改,但它仍然不起作用@Taplar请参考副本中有关委托事件处理程序/绑定的部分。这就是你想要的。你也可以找到他们的参考@Wow!非常感谢你。这是一种令人难以置信的高效方法。我现在真的学到了很多,我有一个简单的问题,当我动态添加时,屏幕会转到顶部,url中有“#”。我只想在我加上的时候说出来。有可能吗?你能帮我吗?