2016-03-08 95 views
1

以前从未这样做过。我想在加载页面5秒后加载一个href。5秒钟后加载

我正在研究一个脚本,但它不工作。

HTML:

<div id="div1"> 
    <a id="single" href="#">Single Play</a> 
    <a id="multi" href="#">Head to Head</a> 
</div> 

JS:

$(window).load(function(){ 
    function ahref(){ 
     $("#div1").show(); 
    }; 
    window.setTimeout(ahref, 5000); // 5 seconds 
}) 

哪儿一出了错?

+0

在隐藏状态'#div1'过吗? – Rayon

+0

什么是没有关于它的工作?你有默认隐藏DIV的CSS吗? – Barmar

+2

它适用于我:https://jsfiddle.net/barmar/08y8vvrn/1/ – Barmar

回答

3

DEMO

$(window).load(function() { 
 
    function ahref() { 
 
    $("#div1").show(); 
 
    }; 
 
    setTimeout(function(){ ahref(); }, 5000); 
 
})
#div1{ 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div1"> 
 
    <a id="single" href="#">Single Play</a> 
 
    <a id="multi" href="#">Head to Head</a> 
 
</div>

+2

为什么你认为你需要把'ahref'改成'function(){ahref(); }'? – Barmar

+0

嘿伙计,@RinoRaj,很奇怪,这与jquery 2.0.0不起作用,https://jsfiddle.net/2692sq1v/ – ameenulla0007

+1

这里有什么不同,这是什么OP已声称有,除了多余的包装在匿名函数中调用'ahref()'? –

2

你的代码是正确的,只是show()函数可以使用隐藏要素,如果已显示的元素,它会没有效果,所以你应该默认使用css类隐藏div例如:

#div{ 
    display:none; 
} 

或JavaScript功能hide() e.g:

$("#div1").hide(); 

然后按照预期的代码将工作。

希望这会有所帮助。


$(window).load(function(){ 
 
    $("#div1").hide(); 
 
    
 
    function ahref(){ 
 
     $("#div1").show(); 
 
    }; 
 
    window.setTimeout(ahref, 2000); // 2 seconds 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div1"> 
 
    <a id="single" href="#">Single Play</a> 
 
    <a id="multi" href="#">Head to Head</a> 
 
</div>