如何在此代码中clearInterval()

时间:2012-08-21 19:09:10

标签: javascript jquery

我正试图像Facebook一样发帖。我需要在每十秒后刷新内容div,并且在用户键入注释时不应刷新div。内容正在重新加载但没有停止。实际上,我想在点击id = 'comments_option'时停止它。

我尝试了这个并在$(document).ready

调用了函数reload(uid)
var intervalId = null;

function reload(uid) {
    intervalId = setInterval(function () {
        var ol = $('#home_list');
        var start = ol.children().length;

        $.post('ajax/reloadhome.php', {
            uid: uid,
            start: start
        }, function (data) {
            $('#buzzfetch ul').html(data);
        });
    }, 5000);


    $('#comments_option').click(function () {

        clearInterval(intervalId);

    });
}

1 个答案:

答案 0 :(得分:0)

使用on而不是click

$("#comments_option").on("click", function () {
    clearInterval(intervalId)
});

由于#comments_option位于#buzzfetch ul内,因此点击事件仅在使用click时绑定到#comments_option的第一个实例。它不会绑定到任何其他实例。

有关bindon

之间差异的进一步说明,请参阅this answer