【发布时间】:2009-12-19 08:01:29
【问题描述】:
我目前有一个位于ul 标记中的缩略图列表,即li's。
我正在使用Galleria 图片库,但我的图片库中有超过六张图片,所以我正在尝试实现一个页面系统。
我想要做的是:
我有一排图片,row1,当你点击第2页时row1应该使用hide("slide")这个功能隐藏,在它们都隐藏之后,row2应该使用show("slide")显示,但是这些hide 和show 函数同时发生,我希望hide 函数在show 函数执行之前完成,这是我的代码:
$("a[href^='#']").click(function() {
if (($(this).attr("href") == "#") && ($(this).attr("rel") != "gallery") && ($(this).attr("href").indexOf("row") < 0)) {
return false;
}
else if ($(this).attr("href").indexOf("row") < 0) {
$.scrollTo($(this).attr("href"),1000);
return false;
} else {
var href = $(this).attr("href");
href = href.replace("#","");
$("ul.galleria li").each(function() {
if ($(this).is(":visible")) {
$(this).hide("slide");
}
}).;
$("ul.galleria li."+href).each(function() {
$(this).show("slide", 800);
});
return false;
}
});
如何在 show 函数等待执行时执行 hide 函数?
// 编辑
我已将代码更改为以下内容:
$("ul.galleria li:visible").hide("clip", {direction : "horizontal"},function(){
$("ul.galleria li."+href).show("clip", {direction : "horizontal"}, 800);
});
但是现在,show 函数运行的次数与上一个“页面”上可见的li 的数量完全相同。我怎样才能让那个函数只执行一次?
【问题讨论】:
标签: jquery jquery-ui jquery-plugins javascript