代码之家  ›  专栏  ›  技术社区  ›  topper1309

在jquery中添加和删除div不起作用

  •  0
  • topper1309  · 技术社区  · 7 年前

    我试图提醒删除问题它仍然不起作用。有人能帮我吗?

    <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>
    

    1 回复  |  直到 7 年前
        1
  •  0
  •   SomeRSGuy    7 年前

    我给你做了一个片段。

    问题是不能将事件绑定到动态对象。 $(文档)。需要打开。

    另外,我使用了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>