Javascript 向JS函数添加延迟

Javascript 向JS函数添加延迟,javascript,jquery,delay,settimeout,Javascript,Jquery,Delay,Settimeout,我有这个功能: $(document.body).ready(function() { var o = $(".hidden"); $(".about_us").click(function() { o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible"); }); }); 我想增加一个延迟。我在试这个 setTimeout(...); 像这样 $(document.body).re

我有这个功能:

$(document.body).ready(function() {
  var o = $(".hidden");
  $(".about_us").click(function() {
    o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible");
  });
});
我想增加一个延迟。我在试这个

setTimeout(...); 
像这样

$(document.body).ready(function() {
  setTimeout(function() {
    var o = $(".hidden");
    $(".about_us").click(function() {
      o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible");
    });
  }, 1000);
});
但它不起作用。 有什么帮助吗


以上是正确的语法,但尚未测试。。。这将100%起作用。

看起来您试图在添加单击侦听器之前添加超时1秒,但正如@Moob所说,这没有意义

如果希望在单击后发生延迟,此代码将起作用:

$(document).ready(function() {
  $(".about_us").click(function() {
    setTimeout(function() {
      var o = $(".hidden");
      o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible");
    }, 1000);
  });
});

你想在哪里耽搁?在添加click侦听器之前,您似乎需要等待1秒,但这没有意义。也许您希望延迟发生在单击之后?请澄清。
$(document).ready(function() {
  $(".about_us").click(function() {
    setTimeout(function() {
      var o = $(".hidden");
      o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible");
    }, 1000);
  });
});