我已经使用$(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();
});