2013-03-01 7 views
7

사용자가 SPAN 또는 DIV를 가리키면 DIV를 숨기고 마우스 커서에 표시하려고합니다.범위 위로 마우스를 가져 가면 DIV가 표시됩니다.

이 함수를 만들었지 만 작동하지 않습니다 (jquery가로드 됨).

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

사용할 수 있습니다 ... 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에 대한 :

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가 마우스에 표시되지 않지만 그 아래 약 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 ('왼쪽', 왼쪽); \t \t $ ("#"+ divid.) .css ('top', top); \t \t $ ("#"+ 나누기) .css ('위치', '고정'); \t \t $ ("#"+ divider) .toggle(); \t \t \t \t false; \t} – Mbrouwer88

+0

정상적으로 작동합니다. – kapil

9

나는 빨리의 Dušan Radojević 코드로 시작,이 예제를 설정 :

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

jsfiddle

+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> 

이 코드는 귀하의 경우에 유용 할 것입니다.

관련 문제