鼠标输出15秒后隐藏div

时间:2015-10-22 09:47:22

标签: javascript php jquery

在我的网站上,页面加载时会出现一个弹出窗口,我有三个条件:

  1. 页面加载后如果在15秒内弹出div没有任何操作,则它会自动隐藏。
  2. 页面加载后,如果鼠标在弹出div的外侧,那么div将在15秒鼠标输出后隐藏。
  3. 页面加载后,如果鼠标位于弹出窗口,则鼠标输出时弹出窗口不会隐藏。
  4. 代码:

    $(document).ready(function () {
        // Action on mouseover from pop-up
        $('#activity').on("mouseover", function(e) {
            ('#activity').show();
        });
    
        // Action on mouseout from pop-up
        $('#activity').on("mouseout", function() {
            setTimeout(function() { $("#activity").fadeOut(1500); }, 15000);
        });
    setTimeout(function() { $("#activity").fadeOut(1500); }, 15000)
    })
    

3 个答案:

答案 0 :(得分:8)

仅使用.show()函数不会停止您调用的超时功能。您需要在鼠标悬停时清除超时功能。

这将在页面加载时将超时设置为名为timeout的变量,或在mouseoff时将其重置。如果您将鼠标悬停在活动上,那么当您将鼠标移开时,该超时功能将被清除(取消)并重新启动

$(document).ready(function () {

    var timeout;

    // Action on mouseover from pop-up
    $('#activity').on("mouseover", function(e) {
        clearTimeout(timeout);
    });

    // Action on mouseout from pop-up
    $('#activity').on("mouseout", function() {
        timeout = setTimeout(function() { $("#activity").fadeOut(1500); }, 15000);
    });

    timeout = setTimeout(function() { $("#activity").fadeOut(1500); }, 15000)
});

答案 1 :(得分:1)

试试这段代码: -

$(document).ready(function () {
        // Action on mouseover from pop-up
        $('#activity').on("mouseover", function(e) {
            $('#activity').show();
        });

        // Action on mouseout from pop-up
        $('#activity').on("mouseout", function() {
            setTimeout(function() { $("#activity").fadeOut(1500); }, 15000);
        });
    setTimeout(function() { $("#activity").fadeOut(1500); }, 15000)
    })

或在此行中添加 $

$('#activity').show();

答案 2 :(得分:0)

试试这个:

ORDER BY mx.Total DESC, o.OrderID DESC, ol.Quantity DESC

由于你的最后一行代码,你让actitvity无处不在......