このスクリプトは、マウスオーバーやクリックなど、各マウスイベントで画像を「ロールオーバー」します
img src が変更されました。問題は、 onClick イベントによって実行される関数の実行を遅らせようとしていたことです。
関数を settimeout に変更しようとしましたが、成功しませんでした
setTimeOut('functionName(param1, param2)', 5000);
設定されたタイムアウトをカプセル化する関数を呼び出す必要はありません
私は何を間違っていますか?
<a href="yourpage.htm">
<img src="images/Button2_Normal.PNG" width="150" id="img2"
onmouseover="mOver(this, image2)" onmouseout="mOut(this, image2)" onclick="mActive(this, image2)" />
</a>
<a href="yourpage.htm">
<img src="images/Button1_Normal.PNG" width="150" id="img1"
onmouseover="mOver(this, image1)" onmouseout="mOut(this, image1)" onclick="mActive(this, image1)">
</a>
JavaScript
var image1 = new Array("images/Button1_Normal.PNG", "images/Button1_MouseClick.PNG", "images/Button1_MouseOver.PNG"); var image2 = new Array("images/Button2_Normal.PNG", "images/Button2_MouseClick.PNG", "images/Button2_MouseOver.PNG"); var preloadImages = new Array(); // preloads images function Loadimages(images) { for (i = 0; i < images.length; i++) { preloadImages[i] = new Image() preloadImages[i].src = images[i] } } Loadimages(image1); lastN = "" function mOver(obj, images) { if (lastN != obj.id) { document.images[obj.id].src = (images.length == 3 ? images[2] : images[1]) } } function mOut(obj, images) { if (lastN != obj.id) { document.images[obj.id].src = images[0] } } function mActive(obj, images) { var ts1 = document.getElementById('img1'); if (typeof obj != "string") { obj = obj.id } document.images[obj].src = images[1] if (lastN != "" && lastN != obj) { document.images[lastN].src = images[0] } lastN = obj } function timeout_init(obj,images) { setTimeout('mActive(obj, images)', 5500); }