jQuery 问题(延迟和订单)

jQuery issue (Delay and Order)

我正在努力学习jQuery。我试图让 "slideUp" 先发生,然后 "removeClass" 等等,但是,它似乎不起作用。

另一个问题是,如果我单击已选中的同一个图标,.delay 有效,但在其他情况下无效。

Link to jsFiddle

$(".icon ").click(function() {
  $(".text").slideUp(1000).delay(800);
  $(".icon").removeClass("selected");
  $(".icon").addClass("unselected")
  $(this).removeClass("unselected");
  $(this).addClass("selected");
  $(".text").eq($(this).index()).slideDown(1000);
});

尝试在 slideUp 回调函数中编写代码,如下所示:

$(".icon ").click(function() {
  var _this = $(this);
  $(".text").slideUp(1000, function(){
      $(".icon").removeClass("selected");
      $(".icon").addClass("unselected")
      _this.removeClass("unselected");
      _this.addClass("selected");
      $(".text").eq($(this).index()).slideDown(1000);
  }).delay(800);
});

检查更新的jsfiddle https://jsfiddle.net/2bv4seh1/113/

$(".icon").click(function() {
  $(".text").slideUp(500).delay(500);
  $(".icon").removeClass("selected");
  $(this).toggleClass("selected");
  $(".text").eq($(this).index()).delay(500).queue(function(nxt) {
      $(this).slideDown(300);
      nxt();
})

});

.delay() 用于作为队列一部分的项目,例如动画。一个简单的 addClass 没有排队。 :- jQuery delay not working