0

showPeopleDetailsユーザーがa-tagにカーソルを合わせると、関数を実行するJavaサーバーページがあります。showPeopleDetailsフレームワークによってインポートされる別のjsファイル内のJavascript関数です。showPeopleDetailsaタグの上にバルーンポップアップを表示する必要があります。どういうわけか、関数は最初のaタグに対してのみ実行され、他のタグに対しては実行されません。これはHTMLスニペットです:

| <a href="javascript:void(0);" class="PeopleLink LinkColorBlackDark" onmouseover=    "showPeopleDetails('<%=userUnique %>', event.clientX, event.clientY)" onmouseout="hidePeopleDetailsTimed()"></a>

これは私のJavascriptshowPeopleDetails関数です:

function showPeopleDetailsNow(UserId, x, y){
   var vpd = document.getElementById("PeopleDetails");
   if ( vpd != null ) {
       getMousePosition();
       vpd.style.top= x +10 + $(document).scrollTop(); //mouseX and mouseY are defined globally
       vpd.style.left= y +10;
       vpd.style.display="block";
   }
}

私がテストした機能に問題はなくshowPeopleDetails、Webサイトの他の部分で機能しています。しかし、追加event.clientXevent.clientYてポップアップが表示されるのは1回だけです。Internet Explorer 8用に開発するだけなので、ブラウザーの互換性は問題になりません。ヘルプは大歓迎です!

4

1 に答える 1

0

関数呼び出しで event.clientX と event.clientY を渡す代わりに、これを試してください

<a href="javascript:void(0);" class="PeopleLink LinkColorBlackDark" onmouseover=    "showPeopleDetails('<%=userUnique %>', event)" onmouseout="hidePeopleDetailsTimed()"></a>

function showPeopleDetailsNow(UserId, event){
  event = event || window.event;
  var x = event.clientX, y = event.clientY;

   var vpd = document.getElementById("PeopleDetails");
   if ( vpd != null ) {
       getMousePosition();
       vpd.style.top= x +10 + $(document).scrollTop(); //mouseX and mouseY are defined globally
       vpd.style.left= y +10;
       vpd.style.display="block";
   }
}
于 2011-08-03T14:30:28.647 に答える