setInterval onclick #fr_tab div并在单击文档中的任何位置时清除

时间:2011-11-05 23:36:08

标签: javascript jquery

我有这个jquery代码:

    $('#fr_tab').click(function() {
    $("#tab2").empty().html('<img src="images/loading.gif" />');
var handle = setInterval(function () {
    $('#tab2').load('fr_quests.php');
    }, 3000);   
    });

    $('body').click(function() {
        if (handle) {
            clearInterval(handle);
            handle = 0;
        }
    });

我想知道如何在点击#fr_tab时设置Ineterval,以及如果单击文档中的任何位置我将如何清除它。

2 个答案:

答案 0 :(得分:1)

您的handle变量是第一个function的本地变量。删除var前缀使其全局化是使其工作的最快方式,尽管绝对不是最好的。

或者,要不使用全局变量,那么,如果代码在$(document).ready(...)函数中,那么

    $(document).ready(function () {
        var handle
        $('#fr_tab').click(function() {
            $("#tab2").empty().html('<img src="images/loading.gif" />');
            handle = setInterval(function () {
                $('#tab2').load('fr_quests.php');
            }, 3000);   
        });

        $('body').click(function() {
            if (handle) {
                clearInterval(handle);
                handle = 0;
            }
        });
    });

答案 1 :(得分:0)

您需要在$(document).not('#tab2').click(...

上触发