1

我有一个选择标签,当它的值发生变化时,我想根据该新值从数据库中获取一些数据,然后将这些新数据放在一个新的 div 上,当用户单击它时,这个 div 包含一个关闭符号,新的 div 将隐藏,我使用 jquery 做到了,除了隐藏新 div 外,一切都运行良好,我的 jQuery 用于关闭新 div 运行良好,但现在不,我不认为我在 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>

注意这里用了三次 close 标志,第一次在 divaqSugQues有效,但在 divaqSugInfo和 div都无效aqSugHints

ajax 运行良好,我打印结果

谢谢你的帮助

4

2 回答 2

2

这一行:

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

正在用没有单击事件绑定的新按钮替换 div 的内容,因此每次更新时,该按钮都会失去其绑定。

您可以尝试将动态内容包装在可以轻松删除的容器中,或者执行类似的操作

$("#aqSugInfo").children(':not(.closeSign1)').remove();
于 2012-05-24T19:18:54.410 回答
1

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

于 2012-05-24T19:12:43.830 回答