如何延迟不是动画的 jquery 事件?

How to delay a jquery event that isn't an animation?

我有一个 jquery 事件,我希望它只在一定时间后发生。显然,delay 仅适用于动画事件。在这种情况下,我可以使用 delay 的替代方法吗?

$( document ).ready(function() {
  $(".opacity").delay(1000).css({"opacity": ".5",}).delay(1000).css({"opacity": "1",});
});

可以使用setTimeout(),不需要使用延时功能

$(document).ready(function() {
  setTimeout(function() {
    $(".opacity").css({
      "opacity": ".5",
    });
    setTimeout(function() {
      $(".opacity").css({
        "opacity": "1",
      })
    }, 1000)
  }, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="opacity">opacity</div>

如果你想使用 delay function, then you can add an entry to the delay queue using .queue() 在那里添加你的代码

$(document).ready(function() {
  $(".opacity").delay(1000).queue(function(next) {
    $(this).css({
      "opacity": ".5",
    })
    next();
  }).delay(1000).queue(function(next) {
    $(this).css({
      "opacity": 1,
    })
    next();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="opacity">opacity</div>