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 に答える