<!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永久,我希望它只改变为你好1000ms。我一直在寻找周围的jqueryAPI,谷歌,任何地方。我就是不能让它发生。有人有什么想法吗?
谢谢!
你只需要在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);
});
可以使用setTimeout()
函数延迟命令:
$('#change').html('hello');
setTimeout(function() {
$('#change').html('Mario is standing still...');
}, 1000);
这个函数是原生JavaScript的一部分,它与jQuery没有任何关系。
试试用这段代码代替当前行
$('#change').html('hello').delay(1000).html('Mario is standing still...');
或者,如果"Mario is standing still…"的值会发生变化,你可以使用
var originalText = $('#change').html();
$('#change').html('hello').delay(1000).html(originalText);