1

我只是一个初学者,我希望有人能立即明白为什么 IE9 对我的 Jquery 弹出窗口没有任何作用(Chrome 和 Firefox 工作正常)......调用弹出窗口的 html 位......

<!-- HIDDEN / POP-UP DIV -->
  <div id="pop-up">
      <div id="leave_popup">
           here is my popup content (the css for #pop-up sets the div
           display to 'none')........
      </div>
  </div>

这是我的 Jquery 弹出窗口...

 $(document).ready(function(){
     $("#req_13").hover(function(e) {$("#pop-up").show();
 });
 $("#req_13").mousemove(function(e) {
     var moveLeft = 20;
     var moveDown = 10;
     $("#pop-up").css('top',+(e.pageY) + moveDown).css('left',+ (e.pageX) + moveLeft);
 });
 $("#leave_popup").mouseleave(function(){
     $("#pop-up").hide();
 });
4

2 回答 2

0

IE 会在最轻微的代码缺陷处中断。您的方法中有额外的+符号.css。尝试这个:

 $(document).ready(function(){
 $("#req_13").hover(function(e) {
      $("#pop-up").show();
 });

$("#req_13").mousemove(function(e) {
   var moveLeft = 20;
   var moveDown = 10;
  $("#pop-up").css('top',e.pageY + moveDown).css('left',e.pageX + moveLeft);
 });

$("#leave_popup").mouseleave(function(){
   $("#pop-up").hide();
});
});
于 2013-03-13T20:37:31.307 回答
0

我认为这与您对 pageY 和 pageX 的使用有关。

在怪癖模式下我的头顶上有一个脚本,类似于:

if (e.pageX || e.pageY) {
    posx = e.pageX;
    posy = e.pageY;
} else if (e.clientX || e.clientY) {
    posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
    posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}

希望有帮助。

更新:

$(document).ready(function() {
    $("#req_13").hover(function(e) {
        $("#pop-up").show();
    });

    $("#req_13").mousemove(function(e) {
        var moveLeft = 20;
        var moveDown = 10;
        if (e.pageX || e.pageY) {
            posX = e.pageX;
            posY = e.pageY;
        } else if (e.clientX || e.clientY) {
            posX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            posY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
        }
        var newLeft = posX + moveLeft;
        var newTop = posY + moveDown;
        $("#pop-up").css({'left': newLeft, 'top': newTop});
    });

    $("#leave_popup").mouseleave(function() {
        $("#pop-up").hide();
    });
});

这是一个可以工作的jsfiddle:http: //jsfiddle.net/wBaHe/5/

于 2013-03-13T20:37:34.320 回答