2012-05-24 275 views
1

我有一个选择标记,当它的值更改时,我想根据新的值从数据库中获取一些数据,然后把这些新的数据放在一个新的div上,这个div包含一个close符号用户点击它,新的div将隐藏,我使用jquery,一切都工作良好,除了隐藏新的div,我的jQuery关闭新的div是行之有效的,但现在不,我不认为我做错了在jQuery的,但我不知道哪里是我的错,U会帮我请jQuery删除/隐藏元素

jQuery代码

$(document).ready(function(){ 
$("#aqIoQuesSelector").on("change",function(){ 
     var IO = $("#aqIoQuesSelector").val(); 
     $("#aqSugInfo").html('<div class="closeSign1"></div>'); 
     $.getJSON("http://localhost/Mar7ba/InformationObject/giveContenfForIO/"+IO+"/TRUE",function(data){ 
      if(data.length>0){ 
       $("#aqSugInfo").css("text-align","right"); 
       for(var i=0;i<data.length;i++){ 
        $("#aqSugInfo").append('<p><span class="aqoneContenSug">'+data[i]+'</span></p>'); 
       } 
      }else{ 
       $("#aqSugInfo").append('<span class="successMessage">no suggesiont</span>'); 
      } 
      $("#aqSugInfo").css("display","block"); 
     }); 
    }); 
}); 

$(document).ready(function(){ 
    $('.closeSign1').on('click', function() { 
     $(this).parent().hide(); 
    }); 
}); 

$ HTML代码#

<div id="addQuestion1" class="container"> 
    <ul> 
     <li> 
      <label class="Paragraph">Question</label> 
      <p> 
       <label>Text</label> 
       <input id="aqQuestionText"type="text" class="longInput1"/> 
      </p> 
      <p> 
       <label>Answer</label> 
       <input id="aqQuestionAnswer"type="text" class="longInput1"/> 
      </p> 
      <p> 
       <label>Is Existed ?</label> 
       <input type="button" value="check" class="button1" id="aqQuestionSug"/> 
      </p> 
      <div id="aqSugQues" class="SuggestionsContainer"> 
       <div class="closeSign1"></div> 
      </div> 
     </li> 
     <li> 
      <p><label class="Paragraph">Choices</label></p> 
      <p> 
       <label>First Choice</label> 
       <input type="text" class="longInput1" name="choice1"/> 
      </p> 
      <p> 
       <label>Second Choice</label> 
       <input type="text" class="longInput1" name="choice2"/> 
      </p> 
      <p> 
       <label>Third Choice</label> 
       <input type="text" class="longInput1" name="choice3"/> 
      </p> 
     </li> 
     <li id="aqQuestionIoli"> 
      <label class="Paragraph">Question IO</label> 
      <p> 
       <label>Concept</label> 
       <select class="ConceptSelector1"></select> 
      </p> 
      <p> 
       <label>IO</label> 
       <select id="aqIoQuesSelector"></select> 
      </p> 
      <p> 
       <label>Info</label> 
       <input type="text" class="longInput1"/> 
      </p> 
      <div id="aqSugInfo" class="SuggestionsContainer"> 
       <div class="closeSign1"></div> 
      </div> 
     </li> 
     <li id="aqAnswerIoli"> 
      <label class="Paragraph">Answer IO</label> 
      <p> 
       <label>Concept</label> 
       <select class="ConceptSelector1"></select> 
      </p> 
      <p> 
       <label>IO</label> 
       <select id="aqIoAnswerSelector"></select> 
      </p> 
     </li> 
     <li> 
      <label class="Paragraph">Hints</label> 
      <p> 
       <label>First Hint</label> 
       <input type="text" class="longInput1"/> 
      </p> 
      <p> 
       <label>Second Hint</label> 
       <input type="text" class="longInput1"/> 
      </p> 
      <div id="aqSugHints" class="SuggestionsContainer"> 
       <div class="closeSign1"></div> 
      </div> 
     </li> 
     <li> 
      <label>Type</label> 
      <select class="TypeSelector"></select> 
     </li> 
     <li> 
      <input type="submit" value="save" class="button1"/> 
     </li> 
    </ul> 
</div> 

通知,标志密切在这里使用三个时间,它的作品首次在格aqSugQues,但在DIV aqSugInfo也不股利aqSugHints

不起作用Ajax是工作好,我打印结果

感谢您的帮助

回答

2

这条线:

$("#aqSugInfo").html('<div class="closeSign1"></div>'); 

与一个新的按钮替换div的内容不具有的点击事件绑定,所以每次更新时,该按钮就会失去约束力。

您可以尝试包装容器中的动态内容,因为我想减少我的代码的大小,你可以很容易地删除,或做类似

$("#aqSugInfo").children(':not(.closeSign1)').remove(); 
+0

该行是密切的标志,其类是'closeSign1'和jQuery函数是关于同一个类的,并且我会尝试你的代码 –

+0

你是一个人,它的工作原理,非常感谢你的帮助,并且感谢你描述发生了什么,我会接受答案 –

1

如果是$("#aqSugInfo")要隐藏,为什么不在代码中这么说? $("#aqSugInfo").hide();

+0

,所以我将有一个功能隐藏所有新的div,并且该函数是(.closeSign1),它适用于第一个Div,但不适用于第二个和第三个div –

+0

因为无论如何您都重复使用相同的'aqSugInfo' div,开销是多少?你是否试图看到我的建议,看看它是否有效? – dda

+0

我知道它会工作,但你错了我没有使用保存'aqSugInfo',检查代码,这是广告ID –