0

.izberiLokacijaクラスのonmouseoutイベントは、。のonmouseoutイベントによってトリガーされているよう<li>です。これはJavascriptの動作方法ですか、それとも私は何か間違ったことをしていますか。その場合は、div自体を離れるときにのみ.izberiLokacijaクラスでonmouseoutイベントをアクティブ化するための可能な解決策を提案してください...

<div class="izberiLokacija" onmouseout="alert('asd');toggleDivZaMalaMapa(2);">
          <ul>
                    <li onmouseover="toggleDivZaMalaMapa(1);">li1</li>
                    <li onmouseover="toggleDivZaMalaMapa(1);" style="border-top: solid 2px #00699B"> li2 </li>
          </ul>
</div>
4

2 に答える 2

0

これが JavaScript の仕組みです。<li>バブリングを防ぐためにそれぞれにハンドラーを配置するか ( を使用するevent.stopPropagation()か、 を返すことにより)、ハンドラーにそれを入れたいfalseかどうかをテストします。混乱を解消するイベントバブリングの詳細をお読みください。event.target.izberiLokacija

onmouseout別の方法は、 /onmouseoveronmouseleave/に置き換えることonmouseenterです。ほぼ同じイベントですが、後者のペアはバブルしません。

トピック外: からalertに移動すると、より幸せになりconsole.logます。また、インライン JavaScript は扱いにくいです。JS と HTML を分離することを検討してください。

于 2012-05-10T19:33:57.250 に答える
0

要素にカーソルを合わせるたびに...「ホバー」イベントが発生します。また、イベントは DOM ツリーをバブルアップし、その親のそれぞれに対して発火します... body タグまでずっと。

イベントをインラインで割り当てないでください...コードの保守が難しくなり、非セマンティック マークアップが肥大化します。

代わりに、これを試してください (jQuery を使用して...誰もが jQuery を使用しているためですよね?)

http://jsfiddle.net/ryanwheale/fab8Z/

于 2012-05-10T19:41:44.740 に答える