为JS函数添加延迟

时间:2016-05-18 13:05:04

标签: 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).ready(function() {
  setTimeout(function() {
    var o = $(".hidden");
    $(".about_us").click(function() {
      o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible");
    });
  }, 1000);
});

但它不起作用。 有什么帮助吗?

2 个答案:

答案 0 :(得分:2)

看起来你试图在添加点击监听器之前添加超时1秒,但正如@Moob所说,它没有意义。

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

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

答案 1 :(得分:-1)

window.setTimeout(
  function() {
    $(".about_us").click(function() {
      o.hasClass("visible") ? o.removeClass("visible") : o.addClass("visible");
    });
  }
  , 1000
);

以上是正确的语法但尚未测试......这将100%工作。