1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>5</title>

<link rel="stylesheet" type="text/css" href="css/stage.css" />

<script src="jslibs/jquery-1.9.1.min.js"></script>
<script>
$(document).click(function(event) {
     var x = event.offsetX,
     y = event.offsetY;

     $('#player').animate({
         top: y,
         left: x
     }, 1000);

     $('#change').html('hello');
});
</script>

</head>
<body>
<div id="header">
<h1 id="change">Mario is standing still...</h1>
</div>
<div id="stage">
<img id="player" src="images/mario.gif" alt="Mario" />
</div>

</body>
</html>

那是我的代码,但是当我单击它时,它只会永久更改为 hello,我希望它仅更改为 hello 1000 毫秒。我一直在到处寻找 jqueryAPI、google、任何地方。我就是不能让它发生。有人有想法么?

谢谢!

4

3 回答 3

2

您只需要在 setTimeout 中重新设置您正在执行的操作

$(document).click(function(event) {
 var x = event.offsetX,
 y = event.offsetY;

 $('#player').animate({
     top: y,
     left: x
 }, 1000);

 var original = $('#change').html();
 $('#change').html('hello');
 setTimeout(function(){
     $('#change').html(original);
 }, 1000);
});
于 2013-03-12T00:02:24.400 回答
1

您可以使用该setTimeout()功能来延迟命令:

$('#change').html('hello');
setTimeout(function() {
    $('#change').html('Mario is standing still...');
}, 1000);

该函数是原生 JavaScript 的一部分,它与 jQuery 没有任何关系。

于 2013-03-12T00:00:33.250 回答
1

试试这个代码而不是当前行

    $('#change').html('hello').delay(1000).html('Mario is standing still...');

或者,如果“马里奥站着不动……”的价值是可以改变的,你可以使用

    var originalText = $('#change').html();
    $('#change').html('hello').delay(1000).html(originalText);
于 2013-03-12T00:03:28.753 回答