1

Div内に8つの画像を含むテーブルがあり、テーブルまたはdivのいずれかに対してmouseoutイベントを発生させたいのですが、発生しません。これは、マウスが実際に各画像、td、trなどを離れているためだと思います...テーブル全体のmouseoutイベントを伝播させて、それが発生するようにする方法があります子要素から?マークアップは簡単です。

<div id=container>
  <table id="tbl">
    <tr>
      <td><img src=""></td>
      <td><img src=""></td>
      <td><img src=""></td>
      <td><img src=""></td>
    </tr>
    <tr>
      <td><img src=""></td>
      <td><img src=""></td>
      <td><img src=""></td>
      <td><img src=""></td>
    </tr>
  </table>
</div>

私のjQueryコードは次のとおりです。

$("#tbl").mouseout(function(){
  alert("out home");
});

画像の個々のmouseoutイベントを発生させることはできません。これは、画像の上に絶対的に配置された要素があり、mouseoutイベントが早期に発生するためです。

4

3 に答える 3

2

する必要があります:

$("#tbl").mouseout(function(){
  alert("out home");
});

「#」を見逃しました。画像のみが必要な場合は、次を試してください。

$("#tbl >img").mouseout(function(){
  alert("out home");
});

PS。代わりに$( "...")。hover()を使用することを検討しましたか?

于 2009-05-31T19:28:08.077 に答える
0

mouseleaveまったく同じ機能を持つが、子要素では発生しないイベントを使用します。

$("#tbl").bind("mouseleave",function(){
  alert("out home");
});
于 2010-08-05T12:16:47.853 に答える
0

#tblを使用してテーブルを選択するべきではありませんか?

$("#tbl").mouseout(function(){
  alert("out home");
});
于 2009-05-31T19:29:19.353 に答える