【发布时间】:2013-02-28 15:46:01
【问题描述】:
我有一个带有缩略图的画廊类型页面。当您单击拇指时,它会将与该拇指有关的图像加载到隐藏的 div 中,当它们完成加载时,div 然后滑动打开。如果您单击另一个拇指,它将关闭 div,清除内容,加载新内容,然后再次打开它。当您加载页面时,您可以单击一个拇指,然后单击另一个,但是如果您返回第一个拇指并单击 div 将不会再次打开,不知道为什么。感谢您对此的任何帮助。
我在这里设置了一个 jsbin http://jsbin.com/epawub/12/edit
我为拇指设置的javascript如下:
var imgCount = 0;
var image=$('#images');
$('#klossviolins').click(function() {
console.log("Loading...");
$('#images').slideUp(500, function() {
$("#images").empty().ready(function(){
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/home.jpg"
}).appendTo("#images").load(onImage);
$("<img>", {
src: "http://www.klossal.com/images/klossviolins/services.jpg"
}).appendTo("#images").load(onImage);
});
});
$("#info_header").empty();
$('#info_header').append("Kloss Violins Website");
});
$('#light_dance').click(function() {
console.log("Loading...");
$('#images').slideUp(500, function() {
$("#images").empty().ready(function(){
$("<img>", {
src: "http://www.klossal.com/light_dance_1.jpg"
}).appendTo("#images").load(onImage);
$("<img>", {
src: "http://www.klossal.com/light_dance_var.png"
}).appendTo("#images").load(onImage);
$("<img>", {
src: "http://www.klossal.com/light_dance_2.jpg"
}).appendTo("#images").load(onImage);
});
});
$("#info_header").empty();
$('#info_header').append("Dancing With Light Series");
});
function onImage(e)
{
console.log("Image loaded");
imgCount++;
if (imgCount == image.children().length)
{
image.slideDown(500);
}
}
【问题讨论】:
-
.ready 并没有按照您在代码中的想法进行操作。
-
嗯,它有什么作用?
-
在你的情况下绝对没有,它只是立即运行其中的代码,因为
document已经准备好了。 -
有没有办法让准备函数中的东西在空的情况下才会运行?
-
空是同步的,在它发生之前什么都不会发生。
标签: jquery