【发布时间】:2015-12-09 17:22:20
【问题描述】:
我加载了一个由 PHP 构建的图片库,并在单击图片时应用此 JS 代码以生成 CSS“覆盖”。
<script type="text/javascript">
$(".button").click(function(e) {
e.preventDefault();
$.ajax({
url: "action.php",
method: "get",
data: {
id: $(this).attr("data-action")
},
success: openOverlay
});
});
function openOverlay(html_content) {
// Clear out the overlay-content
$("#overlay-content").html("");
// Add new stuff in
$("#overlay-content").html(html_content);
$("#overlay").css("display", 'block').css("opacity", '1');
$("#mask").css("display", 'block').css("opacity", '1');
}
function hide() {
mask.style.display = "none";
mask.style.opacity = "0";
overlay.style.display = "none";
overlay.style.opacity = "0";
}
</script>
一切正常。现在我添加了第二个 AJAX,以便在我到达页面底部时加载更多图像。
$(window).scroll(function() {
if ($(window).scrollTop() + window.innerHeight == $(document).height()) {
$('div#loadmoreajaxloader').show();
$.ajax({
url: "loadmore.php",
method: "get",
data: {
id: "5"
},
success: function(html) {
if (html) {
$("#postswrapper").append(html);
$('div#loadmoreajaxloader').hide();
} else {
$('div#loadmoreajaxloader').html('<center>No more posts to show.</center>');
}
}
}); // close AJAX
}
});
这也很有效,当我到达页面底部时,它会加载更多图像。没有问题。
我的问题:按钮点击仅适用于与 HTML 一起加载的第一个加载数据,它不适用于 AJAX 正在加载的图像。
这是我的html:
<div style="background:url(../blogimages/<? echo $blog2['img_url']; ?>);
background-size:cover;
background-position: center;
overflow:hidden;" id="box-item" class="button" data-action="<? echo $blog2['blogimage_id']; ?>">
<div id="mouseover">
<span id="plus">READ MORE</span>
</div>
</div>
这是来自 AJAX loadmore.php 的回声:
while($blog2 = mysql_fetch_array($sql))
{
$html .='
<div style="background:url(../blogimages/'.$blog2['img_url'].');
background-size:cover;
background-position: center;
overflow:hidden;"
id="box-item" class="button" data-action="'.$blog2['blogimage_id'].'">
<div id="mouseover">
<span id="plus">READ MORE</span>
</div>
</div>';
} // close while tag
echo $html;
exit;
任何想法我做错了什么按钮单击不执行从 AJAX 加载的数据?它在第一个加载 HTML 的图像中完美运行。
【问题讨论】:
标签: javascript php jquery html ajax