2013-03-01 5 views
7

ユーザーがSPANまたはDIVの上にマウスカーソルを置くと、DIVが元に戻って表示されます。スパンのホバー上でマウスカーソルでDIVを表示

私はこの機能を作ったが動作しません(jqueryがロードされています)。

$("#spanhovering").hover(function(event) { 
    $("#divtoshow").css({top: event.clientY, left: event.clientX}).show(); 
}, function() { 
    $("#divtoshow").hide(); 
}); 

jsfiddle

+0

を使用できますか? function ShowHoverDiv(){ $( "#divtoshow")。toggle( 'slow'); } –

答えて

17

あなたはかなりそこにいる:

<div id="divtoshow" style="position: fixed;display:none;">test</div> 
<br><br> 
<span onmouseover="hoverdiv(event,'divtoshow')" onmouseout="hoverdiv(event,'divtoshow')">Mouse over this</span> 

とJSのために、私はすぐにドゥシャンRadojevićコードから始めて、この例を設定

function ShowHoverDiv(divid){ 

    function(e){ 
     var left = clientX + "px"; 
     var top = clientY + "px"; 
     $("#"+divid).toggle(150).css("top",top).css("left",left).css("position","fixed"); 
     return false; 
    } 


} 

<div id="divtoshow" style="display:none">test</div> 
<br><br> 
<span onmouseover="ShowHoverDIV('divtoshow')">Mouse over this</span> 
+0

ありがとう、ほとんど動作します!問題は、DIVがマウスに表示されず、その下の約200ピクセルで、常に完全に左に表示されることです。何故ですか?それは "ディスプレイ"タイプですか? – Mbrouwer88

+0

このコードで修正されました: function hoverdiv(e、divid){ \t \t var left = e.clientX + "px"; \t \t var top = e.clientY + "px"; \t \t \t \t $( "#" + divider).css( 'left'、left); \t \t $( "#" + divid。).css( 'top'、top);\t \t $( "#" + divider).css( 'position'、 'fixed'); \t \t $( "#" + divider).toggle(); \t \t \t \t return false; \t} – Mbrouwer88

+0

これはうまくいきます。 – kapil

9

function hoverdiv(e,divid){ 

    var left = e.clientX + "px"; 
    var top = e.clientY + "px"; 

    var div = document.getElementById(divid); 

    div.style.left = left; 
    div.style.top = top; 

    $("#"+divid).toggle(); 
    return false; 
} 
+0

ありがとうございます。しかし、問題は今私がダイナミックな量のDIVを表示することです。 SPANやDIVのmouseovereventを呼び出すための実際の関数を作成した場合、変数などを使用してdiv内の特定のコンテンツを読み込むことができます。ごめんなさい。 – Mbrouwer88

+1

あなたの最初の投稿でこれを指摘していなかったので、あなたの目標を達成するために既に行ったことを更新し、いくつかのコードを提供してください。主に、次のようなことをしたいと思います: '$( '。my_custom_td').hover(/ * ... * /);' – Imperative

1

実際、私は命令の答えを大いに好む。私は、彼のポストにコメントを追加するには、PRIVSを持っていないので、ここで彼のコードがあり、それはもう少し適応するために微調整:

$(".spanhover").hover(function(event) { 
    var divid = "#popup" + $(this).attr("id") 
    $(divid).css({top: event.clientY, left: event.clientX}).show(); 
}, function() { 
    var divid = "#popup" + $(this).attr("id") 
    $(divid).hide(); 
}); 

http://jsfiddle.net/SiCurious/syaSa/

をあなたに少し賢いする必要があります。 divとspanのID命名規則

0
$('#divToShow,#span').hover(function(e){ 
var top = e.pageY+'px'; 
var left = e.pageX+'px' 
$('#divToShow').css({position:'absolute',top:top,left:left}).show(); 
}, 
function(){ 
    $('#divToShow').hide(); 
}); 
<div id="divToShow" style="display:none">test</div> 
<br/><br/> 
<span id="span" >Mouse over this</span> 

私はこのコードがあなたのケースに役立つと思います。

関連する問題