jquery div不响应其他javascript/jquery方法



我已经使用$(select).append()方法在div中添加了一个div,但我希望它在点击图像时关闭它,所以我添加了图像和另一个$(select).button().click({$(selected).hide()});但点击关闭图像时,什么也没发生。。。。

$(document).ready(function() {
            $("#subCre").click(function() {
                cust = $("#customer").val();
                address = $('#address').val();
                phone = $('#phone').val();
                amt = $('#initamount').val();
                user = '<%= session.getAttribute("user").toString()%>';
                type = '<%=session.getAttribute("type").toString()%>';
                alert(cust + address + phone + amt + user + type);
                $.post("../processor/proc2.jsp",
                        {
                            customer: cust,
                            address: address,
                            phone: phone,
                            initamount: amt,
                            user: user,
                            type: type
                        },
                function(data, status) {
                    if (status === "success") {
                        if(data.length == 11) {
                            $("#SystemMessages").append('<div class="Msg draggable"><img class="close" src="../mime/close.png">Account Added</div>'); // **Here one div
                        } else {
                            $("#SystemMessages").append('<div class="errorMsg draggable"><img class="close" src="../mime/close.png">'+ data + '</div>'); //** here 2nd div
                      }
                        $("#customer").val("");
                        $('#address').val("");
                        $('#phone').val("");
                        $('#initamount').val("");
                    }
                });
            $(".close").button().click(function() {
                $(".close").parent().css("visibility", "hidden");
            });
       });

您需要对动态附加的元素使用事件委派

$('#SystemMessages').on('click','.close',function(){
    $(this).parent().css("visibility", "hidden");
}); 

事件委托--->https://learn.jquery.com/events/event-delegation/

由于已将.close元素动态添加到现有HTML中,因此需要使用事件处理程序来委派它

 $(".close").button();
 $("#SystemMessages").on('click', ".close", function() {
                $(".close").parent().css("visibility", "hidden");
            });

只需使用以下代码

$('.close').live('click',function(){
  $(this).parent().hide();
 });

它肯定会起作用,如果起作用,请告诉我。

.live()在jQuery版本1.7中被弃用,在版本1.9中被删除,因此您可以以以下方式使用.on()方法

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

最新更新