0

我有一个 DIV,当图像悬停时会打开。当用户离开图像时,div 会在超时后消失。如果用户将鼠标悬停在 DIV 本身上,我怎样才能使 DIV 保持活动状态?那么只要用户在图像上或 DIV 本身上,DIV 就会保持活动状态?

我正在使用以下内容:

$(document).ready(function() {
  $(".hover").hover(
  function(e){
    if ( $("#status").is(":hidden")) {
      var ref = $(this).attr("wsref");
      var url = "https://site/_ref/shop/_base/order_status.php?action=getstatus&ref="+ref+"&sid="+Math.random();
      $("#status").show();
      var height = $(".status").height();
      var width = $(".status").width();
      leftVal = e.pageX - width -10 + "px";
      topVal = e.pageY - height -10 + "px";
      $("#status").css({left:leftVal,top:topVal});
      $("#status").html("<div id='loading'></div>").load(url);
    }
  },
  function() {
    if ( $("#status").is(':visible')) {
      setTimeout('$("#status").hide()',0);
    }  
  });
});

HTML

<a href="#"><img class="hover" title="Order Received" name="Order Received" src="https://site/_ref/images/cart.png" wsref="002731"/></a>
4

1 回答 1

0

试试这个,这将在 div 悬停时清除超时:

$(document).ready(function() {
    var myTimeOut;
    $(".hover, #status").hover(
        function(e){
            if ( $("#status").is(":hidden")) {
                var ref = $(this).attr("wsref");
                var url = "https://site/_ref/shop/_base/order_status.php?action=getstatus&ref="+ref+"&sid="+Math.random();
                $("#status").show();
                var height = $(".status").height();
                var width = $(".status").width();
                leftVal = e.pageX - width -10 + "px";
                topVal = e.pageY - height -10 + "px";
                $("#status").css({left:leftVal,top:topVal});
                $("#status").html("<div id='loading'></div>").load(url);
            }
            else {
                //clear timeout if div is hovered
                clearTimeout(myTimeOut);
            }
        },
        function() {
            if ( $("#status").is(':visible')) {
                myTimeOut = setTimeout('$("#status").hide()',0);
            }  
    });
});
于 2012-06-02T04:49:03.310 回答