我编写了一个脚本,它从一个方法中获取数据(以Json类型)并使用关闭按钮显示在div标签中,当我点击关闭按钮时它不起作用!我的剧本是:
$(document).ready(function () {
$("#go").click(function () {
setInterval(function () {
$.ajax({
type: "POST",
url: "WebForm2.aspx/GetMyBooks",
data: '{}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
for (var i = 0; i < response.d.length; i++) {
$("#pejiGrid").append("<div class='modal'><div style='float:left;'><span class='close'>X</span></div>" + response.d[i].BOOK_NAME + "<br/>" + response.d[i].BOOK_DESC + "</div><br/>");
};
},
});
$('.modal').hover(
function () {
$(this).find('.close').delay(0).fadeIn(300);
},
function () {
$(this).find('.close').delay(0).fadeOut(500);
});
}, 5000);
});
$('span.close').click(
$(this).closest('div.modal').fadeOut(0)
);
});
有什么问题?
编辑:关于我的悬停脚本,我应该说它显示延迟关闭按钮,但我给零延迟值: $('.modal').hover(
function () {
$(this).find('.close').delay(0).fadeIn(300);
},
function () {
$(this).find('.close').delay(0).fadeOut(500);
});
有些人可以帮助我解决问题吗?
答案 0 :(得分:4)
您需要在此使用event delegation将click
事件绑定到div
内动态创建的span
和#pejiGrid
元素:
$('#pejiGrid').on('click', 'span.close', function() {
$(this).closest('div.modal').fadeOut(0);
});