プロが教える店舗&オフィスのセキュリティ対策術

JavaScriptを勉強し始めて何とか自分のホームページに使いたいのですが、以下のプログラムをonClickイベントハンドラで動かせたいのですが、初めの一回のみ動き、その後クリックしても動きません。やはり作り直した方がいいのでしょうか。

var timerID; var ichi = 68; var maxX = 120; var perX = 2; speed = 10;

function layerMv(){
if(ichi<maxX) {
ichi += perX;
if(document.all){
var data = document.all('S1').style;
data.visibility = "visible";
data.left = ichi;
}
if(document.layers){
var data = document.layers['S1'];
data.visibility = "visible";
data.left = ichi;
}
timerID = setTimeout("startMv()",speed);
}else if(ichi==maxX){
clearTimeout(timerID);
}
}

他のボタンonMouseoverで初期位置(68,y)に通常のレイヤー移動。
その後動かなくなります。
どうかよろしくお願いします。

A 回答 (2件)

>timerID = setTimeout("startMv()",speed);


ここの部分が、正しくは
timerID = setTimeout("layerMv()",speed);
ではないでしょうか?

参考までにスクリプトを作ってみました。
var timerID = 0;
var ichi = 68;
var maxX = 120;
var perX = 2;
var speed = 10;

function layerMv(){
  if(ichi<maxX) {
ichi = ichi + perX;
if(document.all){
window['S1'].style.visibility = "visible";
window['S1'].style.left = ichi;
}
if(document.layers){
document['S1'].visibility = "visible";
document['S1'].left = ichi;
}
timerID = setTimeout("layerMv()",speed);
  }else if(ichi==maxX){
clearTimeout(timerID);
  }
}
    • good
    • 0
この回答へのお礼

本当に助かりました。
スクリプトまで作って頂き、ありがとうございました。

お礼日時:2001/04/02 18:19

JavaScriptは、エラーが出るとそれ以降動作しません。


manmosuさんのページでもエラーが出てるのではないでしょうか?

JavaScriptの動作テストをする場合は、ブラウザの設定で
「エラーの詳細を表示する」
の設定をしていた方がいいと思います。

IEなら、[ツール]→[インターネットオプション]→[詳細設定]で、できます。
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございました。

お礼日時:2001/04/02 18:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!