我有一个select标签,当它的值发生变化时我希望根据新的值从数据库中获取一些数据,然后将这些新数据放在一个新的div上,当用户点击它时,这个div包含一个关闭标记,新的div会隐藏,我用jquery做的,一切都很好,除了隐藏新的div,我的jQuery关闭新的div工作得很好,但现在没有,我不认为我在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 code#
<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>
请注意标志关闭在此处使用了三次,它在div aqSugQues
处首次使用,但在div aqSugInfo
和div aqSugHints
处不起作用
ajax工作正常,我打印结果
感谢帮助
答案 0 :(得分:2)
这一行:
$("#aqSugInfo").html('<div class="closeSign1"></div>');
正在使用没有点击事件绑定的新按钮替换div的内容,因此每次更新时,该按钮都将失去其绑定。
您可以尝试将动态内容包装在容易删除的容器中,或者执行类似
的操作$("#aqSugInfo").children(':not(.closeSign1)').remove();
答案 1 :(得分:1)
如果您要隐藏$("#aqSugInfo")
,为什么不在代码中这样说? $("#aqSugInfo").hide();
?