0

我是 JavaScript 和 JQuery 的初学者,我正在尝试锻炼一些东西

var activetab = 0;

$("li").click(function () {
  $("#tabs-"+activetab).hide("slide", { direction: "left" }, 1000);
   $("li").eq(activetab).css('background-color','white');
  var index = $("li").index(this);
  $("span").text(index);
  $("li").eq(index).css('background-color','red');
    $("#tabs-"+index).show("slide", { direction: "left" }, 1000); 
  activetab = index;
});

这是我的小提琴:

http://jsfiddle.net/6WC4J/

问题是我希望 show 方法在一段时间后启动,这样当前一个元素被隐藏时,新元素就会出现,尝试使用 setTimeout 但没有用,有什么想法吗?

谢谢 总的来说

4

2 回答 2

1

您必须使用回调:

 $("#tabs-" + activetab).hide("slide", {
    direction: "left"
 }, 1000, function(){
     // this will be called after the element is completely hidden.
 });

参考:http ://api.jquery.com/hide/

于 2013-02-23T11:07:41.583 回答
1

您可以使用complete该方法的回调.hide()来触发.show()动画。

$("#tabs-" + activetab).hide("slide", {
    direction: "left"
}, 1000, function(){
    $("#tabs-" + index).show("slide", {
        direction: "left"
    }, 1000);
    activetab = index;
});

这样您就不需要使用 asetTimeout并且同步是无缝的。

看这里。

于 2013-02-23T11:08:32.767 回答