2014-12-14 6 views
0

사용자가 특정 텍스트 (<div>)를 선택할 때 나타나는 팝업을 구현하려고합니다. 툴팁은 <div>이고 페이지 하단에는 display: noneposition: absolute CSS 속성이 있습니다. 선택의 div와 mouseUp 이벤트 핸들러에서jQuery : mouseup + position : absolute + show(). IE의 문제점

내가 뭐하는 거지 다음 :

여기
$("#popup").css({ 
    top: e.pageY, 
    left: e.pageX 
}).show(); 

가 작동 JS 바이올린의 : http://jsfiddle.net/6r4Lrgmv/

그것은 크롬과 파이어 폭스하지만 Internet Explorer에서 잘 작동은 (I가 테스트 한 버전 9 및 11) 페이지 하단의 텍스트를 선택합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이 문제를 해결할 수있는 방법이 있습니까?

+1

어쩌면'톱 시도 : e.pageX + '픽셀'을, 왼쪽 : e.pageX +는 ' – Freez

+0

가 작동하지 않았다 누가 당신의 바이올린의 그 :( – Kirill

+0

을 도움이되지 않았다 px'' IE 또는 원본 페이지? – Freez

답변

1

나의 추측 된 설명 : 팝업을 표시 할 때 IE는 마우스 커서가 실제로 팝업 안에 있다고 생각합니다. 따라서 페이지 끝의 텍스트를 선택합니다.

  • 팝업 위치에 +1을 추가

    나는 (IE 11에서 테스트) 두 가지 솔루션을 발견했다. 이렇게하면 팝업이 마우스 커서 바로 아래에 나타나지 않습니다.

    $("#popup").css({ 
        top: e.pageY + 1, 
        left: e.pageX + 1 
    }).show(); 
    
  • 사용의 setTimeout. 이렇게하면 이벤트가 완료된 후 (현재 이벤트 대기열의 끝에서) 팝업이 표시됩니다.

    setTimeout(function() { 
        $("#popup").css({ 
         top: e.pageY, 
         left: e.pageX 
        }).show(); 
    }); 
    
+0

정확히 이해할 수 없기 때문에 투표하십시오. 어떻게 IE 용 디버그 : D – Kaloyan

+0

"+1"트릭을 한, 감사합니다! – Kirill

관련 문제