1

我有以下代码:

<script type="text/javascript">
$("#contact_min").toggle(function(){
  $("#contact_min").animate({
    height: "300px"
  }, 1000 );
$(".arrow").html("&#x25bc;")
$(".popupcontent").html('foobar')
},
function(){
  $("#contact_min").animate({
    height: "28px"
  }, 1000 );
$(".arrow").html("&#x25B2;")
$(".popupcontent").html("")
});
</script>

<script type="text/javascript">
$(document).ready(function(){
   setTimeout(function(){
  $("#contact_min").animate({
    height: "300px"
  }, 1000 );
$(".arrow").html("&#x25bc;")
$(".popupcontent").html('foobar')
      }, 25000);

});
 </script>

这非常有效,您可以单击 div 并打开它,或者您可以等待 25 秒然后它打开。但是当你点击它,然后等待 25 秒,你必须点击两次才能再次关闭它。这是因为超时仍然会打开该框,即使您已经单击了它。单击框后有没有办法停止超时,以便框在 25 秒后不打开?

4

2 回答 2

5

利用clearTimeout()

var tOut = setTimeout(function(){
                       $("#contact_min").animate({
                              height: "300px"
                       }, 1000 );
                       $(".arrow").html("&#x25bc;")
                       $(".popupcontent").html('foobar')
      }, 25000);

然后要清除此超时,请这样做,clearTimeout(tOut);

于 2013-01-16T10:42:32.223 回答
0

您只需clearTimeout使用存储的值调用即可停止超时

clearTimeout(timeout);
于 2013-01-16T10:45:22.950 回答