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 に変更されるだけで、1000 ミリ秒だけ hello に変更されます。私は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 に答える