在悬停时停止jQuery加载

时间:2016-03-03 09:50:24

标签: javascript php jquery html

我有一个jQuery脚本,可以加载包含表格的PHP文件。是否可以在悬停时暂停表格加载?还可以设置在首次加载页面时立即加载文件的间隔,然后每隔3秒加载一次?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
    // <![CDATA[
    $(document).ready(function() {
        $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh
        setInterval(function() {
            $('#results2').load('includes/chatlog.php');
        }, 3000); // refresh rate in milliseconds.
    });
    // ]]>
</script>

1 个答案:

答案 0 :(得分:1)

要在table元素悬停时暂停计时器,您可以使用clearInterval()。然后,当鼠标离开table时,您需要再次启动间隔。此外,要立即请求页面加载数据,您可以提取load()调用它自己的函数,该函数立即执行。试试这个:

function getData() {
    $('#results2').load('includes/chatlog.php');
}

var timer;
$(document).ready(function() {
    $.ajaxSetup({ cache: false });

    timer = setInterval(getData, 3000); // refresh every 3 seconds
    getData(); // get data on load

    $('#results2').on({
        mouseenter: function() {
            clearInterval(timer);
        },
        mouseleave: function() {
            timer = setInterval(getData, 3000);
        }
    });
});