![](/img/trans.png)
[英]jQuery Lazy not loading images after I click the Facebook Connect button
[英]Jquery - Images not loading on the first click
我正在使用ajax调用来加载给定div
标签内的页面的一部分。 代码如下:
$("#Gallery").click(function() {
var myUrl = $(this).attr("href");
$("#Content").load(myUrl);
return false;
});
加载的页面,在本例中“Gallery.html”有一个Jquery插件,我用它来创建照片库。 调用方法的代码如下:
<script class="secret-source">
jQuery(document).ready(function($) {
$('#banner-fade').bjqs({
height : 320,
width : 620,
responsive : true
});
});
</script>
形成画廊的图像是:
<ul class="bjqs">
<li><img src="Images/Image1.jpg" title="Caption"></li>
<li><img src="Images/Image2.jpg" title="Caption"></li>
<li><img src="Images/Image3.jpg" title="Caption"></li>
</ul>
我面临的问题是,当我通过ajax调用导航到Gallery.html页面时,除了图像之外整个页面都会加载。 那里甚至没有图像图标。 如果我第二次导航到该页面,则会显示图像。
谁能告诉我为什么会这样,以及如何纠正它?
我不知道您以前是如何将css包含在文件中的,但这里有一个可能的解释:
首先,如果你将css放在body
标签中,浏览器将在没有新样式的情况下第一次呈现页面 ,然后再次重新呈现页面 。 ( 如果我把css文件放在<head>或<body>中,有什么区别? )。
然后: JQuery的ready()
不保证在执行处理程序之前加载CSS。
我觉得发生在你身上(无法确定,因为我不知道你是如何包含你的文件的):
.bjqs ul{display:none}
。 bjqs
元素的样式,但此时仍未应用css。 .bjqs ul
并删除以前应用的样式.javascript不会再次运行,并且你留下了一个图像隐藏的图库通过CSS。 这就是为什么你没有在第一次点击时看到任何东西。 load
):样式表已经存在, .bjqs
元素使用正确的样式呈现。 要避免此行为,请将CSS包含在主页的head标记中。
请在gallery.html文件中尝试使用此代码。 如果DOM已经准备就绪,它不依赖ready()事件。
<script class="secret-source">
function initGal() {
jQuery('#banner-fade').bjqs({
height : 320,
width : 620,
responsive : true
});
}
if (document.readyState !== 'complete') {
jQuery(document).ready(initGal);
} else {
initGal();
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.