jQuery 删除/隐藏元素

标签 jquery html

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

ajax 运行良好,我打印了结果

感谢您的帮助

最佳答案

这一行:

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

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

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

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

关于jQuery 删除/隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743801/

相关文章:

javascript - 使用 Perl Selenium::Remote::Driver for Javascript 稍后加载页面

javascript - 如何在 JQuery 中解析集合

javascript - JSON 数据作为字符串工作,但在对象时抛出内部错误

javascript - JQuery.getJSON() 读取本地文件

javascript - JQuery:点击某物时不要集中注意力

javascript - 模板中带有脚本标签的广告 [Vue.js]

html - CSS - 如何使用固定值动态设置 margin-left

javascript - 现代浏览器是否像图像一样支持 HTML 中的 base64 编码的 JS 或 CSS block ?

html - Bootstrap 3 : dropdown pulled right

css - 减少 HTML 表格对齐之间的空间