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

例えば、
<div onmouseover="a()" onmouseout="aa()">
<br>
<a onmouseover="b()" onmouseout="bb()">あああ</a><br>
<br>
<span onmouseover="c()" onmouseout="cc()">いいいい</span>
<p>ううううう</p>
</div>
<a>,<span>,<p>の間に空白があります。このようなときに<a>から<span>にマウスカーソルが移動したとします。
この時にdivのa()は実行されるのでしょうか。
それともaa()も実行されるのでしょうか教えてください。

A 回答 (2件)

aa()は、divの範囲を出ていませんので実行されません。


a()は、別のイベントでイベントが捨てられた場合実行されないですが、そうでない場合は実行されると思います。
試してはいないので間違っているかもしれません。
実行して試してみるのが一番かと思います。
    • good
    • 0
この回答へのお礼

いつもありがとうございます。
やってみました。
へんな動きをするものですね。

お礼日時:2005/05/19 18:16

 a タグは兎も角としても、 span タグに対する件のイベントの動作はちょっと疑問です。

おそらく、ブラウザ毎に反応が別れてしまうのではないでしょうか…? その辺を考慮すれば span タグよりも a タグを使っておいた方が確実とは思います(その a タグに対してはスタイルシートでリンク表示を消しておけば良いです)。
 それでも、onmouseover & onmouseout は I.E.3 と ネスケ3 は対応してないハズですし…。

 加えまして、 No.1 さんのおっしゃる通り重複は拙いです(これまたブラウザによって反応が別れるんじゃないかな…)。そういったイベントは、極力インライン同士で動作させた方が間違い無いでしょう。

 ちなみにインライン要素をスタイルシートでブロックレベル扱いにする事は可能です("display:block;"ですね)。ただ、それでも入れ子にしてしまったらイベントの動作は疑問です。
    • good
    • 0
この回答へのお礼

ほんとうは良くないと思いますが、私のサイトの訪問者の9割以上がIE6ですのでブラウザ毎の反応の違いは気にしていないのですが、aa()が実行されてるような動きをしたものですから気になって質問させて頂きました。

ご丁寧なご回答ありがとうございます。

実行結果を書出すスクリプトを作ってやってみましたらなんとなく解りましたありがとうございます。

あまり変なことはやらない方が良いですね。

お礼日時:2005/05/19 18:28

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