![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
divの中にp、
pの中にspan、
spanの中にinputがあるとして、
クリックしたらそれぞれの要素のタグををalertで表示させたいとき、
(例1)
<div onClick="a=event.target || event.srcElement;alert(a.tagName)">div
<p>p
<span>span
<input type="button" value="input">
</span>
</p>
</div>
で良いと思います。
(IE,Safri,Chrome,Opera,Firefox,Lunascapeで確認済み)
ただ、onClick内をスッキリさせたいので
(例2)
<script>
function whereYouClick1(){
a=event.target || event.srcElement;
alert(a.tagName);
}
</script>
<div onclick="whereYouClick1();">div
<p>p
<span>span
<input type="button" value="input">
</span>
</p>
</div>
とすると、FirefoxとLunascapeで動かなくなります(よね?)。
苦肉の策として
(例3)
<script>
function whereYouClick2(){
alert(a.tagName);
}
</script>
<div onclick="a=event.target || event.srcElement;whereYouClick2()">div
<p>p
<span>span
<input type="button" value="input">
</span>
</p>
</div>
としたらすべてのブラウザで動いたのですが、腑に落ちません。
これなら(例1)のままの方がすっきりして良かったような気がします。
ここ以外でも同じスクリプトを使いまわしたいときにはfunctionを定義したいところですが、
Forefox, Lunascapeのために(例3)の書き方にならざるを得なくなると思いますが、気持ち悪いです。
もっときれいな書き方はないのでしょうか。
また、上の例では一旦
a=event.target || event.srcElement;
としてから、
alert(a.tagName)
とやっていますが、
alert(event.target.tagName || event.srcElement.tagName)
とやったらIEではエラーとなりました。そんなもんなんでしょうか。
基本的な事柄で申し訳ありませんが、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>(例2)
<script type="text/javascript">
function whereYouClick1(evt){
var a = evt.target || evt.srcElement;
alert(a.tagName);
}
</script>
<div onclick="whereYouClick1(event)">div
<p>p
<span>span
<input type="button" value="input">
</span>
</p>
</div>
設定するのにaddEventListener(attachEvent)を利用する方法もあります。
<参考>
ほかにも情報はいっぱいあるので、ぐぐってみてください。
http://www.findxfine.com/programming/javascript/ …
http://archiva.jp/web/javascript/event-object.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ActiveXobjectが作成できない
-
JavaScriptとcookieを利用して...
-
JavaScriptでオブジェクトを取...
-
innerHTML実行後のイベント
-
HTML:Tableタグに対し、JavaScr...
-
javascript 作成した要素にCS...
-
JavaScriptでのcheckbox作成
-
<a>タグのテキストを取得
-
モーダルダイアログウィンドウ...
-
/*@cc_on@*/
-
Click回数を数え、規定された回...
-
メニュー3つとも個々にドロップ...
-
onclickは良くないのですか
-
googlemapsAPIでマーカー表示さ...
-
javascript の 命令文の記述で...
-
RadioButtonListの表示制御
-
「nullまたはオブジェクトでは...
-
html5 レーダーチャート
-
日本語入力の禁止
-
関数でy=g(x)のgとは何の略です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
<a>タグのテキストを取得
-
ActiveXobjectが作成できない
-
innerHTML実行後のイベント
-
任意の座標をクリックさせるには
-
javascript 特定のタグのidの存...
-
onchangeイベントを使ってspan...
-
HTML:Tableタグに対し、JavaScr...
-
モーダルダイアログウィンドウ...
-
日本語入力の禁止
-
javascriptでCSVを呼出しvlookup
-
Click回数を数え、規定された回...
-
画像上のクリックした場所が分...
-
【Tabキー】特定の範囲内だけで...
-
配列の大括弧と丸括弧はどう違う?
-
重複しないくじの作り方がわか...
-
javascriptで、表示されている...
-
div要素内の全input要素をdisable
-
javascriptであるボタンを押す...
-
javascriptで自動計算フォーム...
-
RadioButtonListの表示制御
おすすめ情報