0

私は次のことをしようとしています:

onClick で image1 を image2 に置き換え、5 秒後に image 2 を image 1 に再度置き換えます。

画像 1 は画像 2 に置き換えられますが、タイムアウト後に元に戻らないという問題があります。

これが私のコードです:

<img id="loadimg" style="display:none;" src="images/Loader.gif" width="140" height="30" />

<script type="text/javascript" language="javascript">

function showLoad(){
    document.getElementById('Generate1').src=document.getElementById('loadimg').src;
    setTimeout(showCode(), 5000);
}

function showCode(){
    document.getElementById('loadimg').src=document.getElementById('Generate1').src;
}

</script>

 <td colspan="3" rowspan="3"><img src="images/BUTTON.gif" alt="" name="Generate1" width="168" height="40" id="Generate1" onClick="showLoad()"></td>

助けてくれてありがとう。

4

3 に答える 3

1

同じ画像を id でアドレス指定し、Generate1初期画像srcを一時値に保存する必要があります (例: var image):

var image = document.getElementById('Generate1').src;

function showLoad(){
    document.getElementById('Generate1').src = document.getElementById('loadimg').src;
    setTimeout(showCode, 5000);
}

function showCode(){
    document.getElementById('Generate1').src = image;
}
于 2012-05-05T13:59:03.967 に答える
1

実行showCodeして結果を に渡すのではなくsetTimeout、関数自体を に引数として渡して、setTimeoutコールバックできるようにする必要があります。

setTimeout(showCode, 5000);

また、 に割り当てるときは、逆を行っても何も変わりませんdocument.getElementById('loadimg').srcdocument.getElementById('Generate1').src元を変数に保持する必要があります。要素を変数に保持することもできます。

var Generate1 = document.getElementById('Generate1');
var loadimg = document.getElementById('loadimg');
var originalSrc = Generate1.src;

function showLoad() {
    Generate1.src = loadimg.src;
    setTimeout(showCode, 5000);
}

function showCode() {
    loadimg.src = originalSrc;
}
于 2012-05-05T13:59:20.223 に答える
1

これは、古いイメージが新しいイメージに「追い越されている」ためです。次のようなことができます。

var pathToGenerateImg = "..."; // path to generate
var pathToLoadImg = "..."; // path to load img

function showLoad(){
    document.getElementById('Generate1').src = pathToLoadImg;
    setTimeout(showCode, 5000);
}

function showCode(){
    document.getElementById('Generate1').src = pathToGenerateImg ;
}

この場合、すべてのパスが変数に格納されるため、必要な<IMG>コンテナーは 1 つだけです ( を使用)。id="Generate1"

于 2012-05-05T14:01:32.937 に答える