这是我们的代码:
<script type="text/javascript">
$(document).ready(function() {
$('a#installfc').click(function(e){
e.preventDefault();
window.open("http://www.site.com/ads/tr.php?src=source",'_parent');
$(this).html("Opening Download Link.. Please wait").delay(3000).html("Please run the installer after downloading");
});
});
</script>
基本上,我们希望显示消息,然后3秒后它会更改为另一条消息。
我做错了什么?
~jquery noob。
答案 0 :(得分:2)
请改用setTimeout。延迟仅适用于jQuery效果(例如slidUp,fadeIn):
$(this).html("Opening Download Link.. Please wait");
setTimeout(function() {
$(this).html("Please run the installer after downloading");
}, 3000);
答案 1 :(得分:2)
我在执行jQuery动画效果时才真正看到delay
。可能有一种方法可以使用该方法来执行您想要的操作,但您可以轻松地回退到标准javascript setTimeout
:
$('a#installfc').click(function(e){
e.preventDefault();
window.open("http://www.site.com/ads/tr.php?src=source");
$this = $(this);
$this.html("Opening Download Link.. Please wait")
setTimeout(function(){
$this.html("Please run the installer after downloading")
},3000);
});
答案 2 :(得分:1)
使用setTimeOut函数
答案 3 :(得分:0)
您可以一起使用延迟和队列来获得所需的效果。
$(this).html("Text 1").delay(3000).queue(function(next) {
$(this).html("Text 2");
next();
});
一般来说,我认为你会坚持使用 setTimeout ,因为该方法可以让你获得更多控制,而且通常更合适。