jQuery删除/隐藏元素

时间:2012-05-24 19:08:18

标签: jquery html

我有一个select标签,当它的值发生变化时我希望根据新的值从数据库中获取一些数据,然后将这些新数据放在一个新的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 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工作正常,我打印结果

感谢帮助

2 个答案:

答案 0 :(得分:2)

这一行:

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

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

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

的操作
$("#aqSugInfo").children(':not(.closeSign1)').remove();

答案 1 :(得分:1)

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