こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javascriptの予約語について

環境 win8 64bit ブラウザ30.0.1599.69 m Firefox24 IE10

javascriptの勉強を始めたばかりなのですが、「click」という名前は予約語なのでしょうか?

ボタンを押したら背景色が変わるコードを書いてみたのですが関数名をclickにすると機能しません。
別の名前(testclick1等)に変更すると機能するようになるのでclickが予約語なのかと思うのですが、
いろいろと調べてみたのですがいまひとつわかりません。

予約語一覧には載っていません
http://msdn.microsoft.com/ja-jp/library/ie/0779sbks(v=vs.94).aspx

######################################################
<html>
<title></title>
<body>
<div id="sample">sample</div>
<script type="text/javascript">
function click() {
e = document.getElementById("sample");
e.style.backgroundColor = 'red';
}
function testclick2() {
e = document.getElementById("sample");
e.style.backgroundColor = 'blue';
}
function testclick3() {
e = document.getElementById("sample");
e.style.backgroundColor = 'yellow';
}
</script>
<hr>
<button onclick="click()">Change to Red</button>
<button onclick="testclick2()">Change to Blue</button>
<button onclick="testclick3()">Change to Yellow</button>
</body>
</html>
######################################################

ネット上に出回っているjavascriptのコードでは普通にclickという名前が使われています。
下記のyoutube動画内でも使われています。
同様のものを私の環境でも書いてみましたがやはり機能しませんでした。
(clickを別の名前にすると動きます)
http://www.youtube.com/watch?v=5e40QHi-vUg

これはいったいどういうことなのでしょうか?
理由をご存の方教えてください。

投稿日時 - 2013-10-12 22:53:21

QNo.8303137

暇なときに回答ください

質問者が選んだベストアンサー

質問者さんが検証で使っているブラウザは新しいものね

たとえばInternet Explorer 10だと使えなくなったのよ

互換表示にしたり
IE9モードやIE8モードにしたりすると
きちんと機能するはずよ
おためしあれ

投稿日時 - 2013-10-12 23:37:16

お礼

なるほど、そういうことだったんですね。

投稿日時 - 2013-10-13 21:56:25

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

これはよくハマることですね
ズバリ言うとclickはbutton要素.clickを指してしまうからです
つまりonclick="click()"は自分がクリックされたら自分をクリックするという意味です
ですのでそのような名前を付けてはいけません

投稿日時 - 2013-10-13 00:01:34

お礼

納得しました。ありがとうございました。

投稿日時 - 2013-10-13 21:56:59

あなたにオススメの質問