jQuery clearInterval问题

时间:2016-02-28 07:33:10

标签: javascript jquery

我正在编写一个脚本来检查onclick事件中每5秒是否存在一个文件。如果存在,我通知客户端并重置计数器。第一个文件检查一切正常,但当我检查另一个文件(点击另一个链接与其他数据文件),它再次检查两个文件和第一个文件检查永远循环,直到我刷新页面。我尝试了所有我能想到的,没有任何效果。请帮忙!

var intervalCheck;

function isFileExists(file) {
    $.ajax({
        type: 'HEAD',
        url: '/apps/'+file,
        success: function() {
            alert('found '+file);
            clearInterval(intervalCheck);
        },  
        error: function() {
        }
    });
}

$('#dialog').on('show.bs.modal', function(e) {
    var file = $(e.relatedTarget).data('file');
    $("a#checkfile").click(function() { intervalCheck = setInterval(function() { isFileExists(file); },5000); });
});

1 个答案:

答案 0 :(得分:0)

您必须将click事件仅绑定到单击的#dialog中的#checkfile。否则它会将事件绑定到所有#checkfile元素。因此,当您第二次打开对话框时,#checkfile链接上会有2个事件。

$(this).find('a#checkfile')

<强>更新 如果有一个对话框包含多个链接,则可以使用jquery的one函数进行一次性事件。

$('a#checkfile').one('click', function(){});