4

ページに画像があり、onmouseoverその画像の場合はJavaScript関数を呼び出してツールチップを表示しonmouseout、画像の中でツールチップを非表示にするメソッドを呼び出します。画像にカーソルを置くと、ツールチップdivを表示するメソッドが呼び出されていることがわかりました。

また、画像内でマウスを動かすと、onmouseoutイベントが呼び出されます(画像の外にいない場合でも)。どうすればこれを止めることができますか?onmouseoutカーソルが画像の外にあるときに呼び出されたいです。何かご意見は?

これが私がそれを呼ぶ方法です:

 <img src="images/customer.png" onmouseout="HideCustomerInfo()" onmouseover="ShowCustomerInfo(485)" />

そして私のJavaScriptでは:

 function ShowCustomerInfo(id) {


 var currentCustomer = $("#hdnCustomerId").val();   
 if (currentCustomer != id) { // to stop making an ajax call everytime when the mouse move on the same image
     
     $.get('../Lib/handlers/userhandler.aspx?mode=custinfo&cid=' + id, function (data) {
         strHtml = data;
     });

     tooltip.show(strHtml);   // method in another jquery pluggin
     $("#hdnCustomerId").val(id);
 }
}

function HideCustomerInfo() {

 tooltip.hide();    // method in another jquery pluggin
 $("#hdnCustomerId").val(0); //setting in a hidden variable in the page

 }
4

4 に答える 4

2

ツールチップにマウスを合わせていると思いますか?ツールチップのマークアップは画像の領域外にありますか?

したがって、ツールチップにマウスを合わせると、技術的に画像が残ります。私にも同じようなことが起こりました。

これを回避するには、画像の周囲に貼り付けてdiv、マウスイベントをに配置してdivから、子要素としてツールチップを取得します。これによりdiv、ツールチップにマウスを合わせても、まだ内部にいdivます。

それはうまくいくかもしれません。

于 2010-09-27T16:23:48.253 に答える
1

ホバーするために使用している画像に透明度がある場合 (右は png です)、画像の透明な部分にマウスを移動すると、onmouseout イベントが発生します。ええ、それはひどいです。私は同じ問題を抱えており、まだエレガントな解決策はありません。

于 2013-03-25T17:58:41.900 に答える
0

画像のイベント ハンドラーHideCustomerInfo()によって呼び出されますか? onmouseoutまた、どのブラウザでそれを取得しますか? 特定のブラウザでこの動作が発生しますか?

于 2010-09-27T16:59:45.793 に答える