※ ChatGPTを利用し、要約された質問です(原文:javascript setTimeout)
JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った動作がうまくいかない
2013/11/05 15:30
このQ&Aのポイント
JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った「めくったカードが違う場合、少し時間を経過させてから元に戻す」という動作がうまくいかない。
JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った動作がうまくいかない。カードをめくった後、選択したカードが違う場合、一定の時間を経過させてからカードを元に戻す動作を作りたいが、どこか間違っているようだ。
JavaScript初心者が神経衰弱を作成しているが、setTimeoutを使った動作がうまくいかない。カードをめくった後、選択したカードが一致しない場合、少し時間を経過させてからカードを元に戻すような動作を作りたいが、どこか間違っているようだ。
javascript初心者ですが、練習を兼ねて神経衰弱を作っています。
setTimeoutを使って「めくったカードが違う場合、少し時間を経過させてから元に戻す」
という動作を作りたいのですが、うまくいきません。
/--------------------------------------------------------/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>神経衰弱</title>
<style type="text/css">
ul {
width: 300px;
list-style:none;
margin: 0;
padding: 0;
}
li {
float:left;
margin: 0;
padding; 0:
}
img {
vertical-align: bottom; /*上下隙間埋め*/
}
#all {
width: 300px;
margin: 0px auto 0px;
margin-top: 50px;
}
</style>
</head>
<body>
<div id="all">
<ul>
<li><img src="none.jpg" alt="3" width="100" height="100" id="c_1" onclick="conce('c_1')" /></li>
<li><img src="none.jpg" alt="1" width="100" height="100" id="c_2" onclick="conce('c_2')" /></li>
<li><img src="none.jpg" alt="4" width="100" height="100" id="c_3" onclick="conce('c_3')" /></li>
<li><img src="none.jpg" alt="4" width="100" height="100" id="c_4" onclick="conce('c_4')" /></li>
<li><img src="none_2.jpg" alt="" width="100" height="100"/></li>
<li><img src="none.jpg" alt="2" width="100" height="100" id="c_5" onclick="conce('c_5')" /></li>
<li><img src="none.jpg" alt="1" width="100" height="100" id="c_6" onclick="conce('c_6')" /></li>
<li><img src="none.jpg" alt="2" width="100" height="100" id="c_7" onclick="conce('c_7')" /></li>
<li><img src="none.jpg" alt="3" width="100" height="100" id="c_8" onclick="conce('c_8')" /></li>
</ul>
</div>
<script type="text/javascript">
var card_c = 0; //数字が表示されているimgの数
var card_first; //altの数
var card_second; //altの数
var click_first; //開けた場所1
var click_second; //開けた場所2
function conce(aaa){ //クリックで無地に数字を表示
var imgId = document.getElementById(aaa);//クリックしたimgのid
if(card_c==0){ //1枚目
imgId.src = imgId.alt+".jpg";
card_c++;
card_first = imgId.alt;
click_first=aaa;
}else{//2枚目
imgId.src = imgId.alt+".jpg";
card_second = imgId.alt;
click_second=aaa;
if(card_first==card_second){
card_c=0;
}else{
setTimeout("bunki()",500);
card_c=0;
}
function bunki(){
document.getElementById(click_first).src="none.jpg";
document.getElementById(click_second).src="none.jpg";
}
}
}
</script>
</body>
</html>
/----------------------------------------------/
どこが間違っているのでしょうか。
よろしくお願いします。
質問の原文を閉じる
質問の原文を表示する
お礼
すいません、解決しました。 function bunki(){ document.getElementById(click_first).src="none.jpg"; document.getElementById(click_second).src="none.jpg"; } を setTimeout(bunki,500); の前に持ってきたらちゃんと動作しました。 ありがとうございました。
補足
お返事ありがとうございます 非推奨だったんですね。 以後使わないようにします。 修正後、fireBugで確認したのですが、 ReferenceError: bunki is not defined setTimeout(bunki,500); と表示され、機能してくれません。 まだどこか間違っているのでしょうか。 よろしければ、もう一度お答えいただけると幸いです。