除非单击“编辑”按钮,否则setinterval重新加载php页面

时间:2011-08-13 22:15:53

标签: jquery

现在我在jquery中有一个间隔函数,它每隔几秒重新加载一次页面:

setInterval(function () {
$('div#tab2').load('morefour.php?doc=' + encodeURIComponent(ktitle));
}, 3000);
}); 

我现在真正想要做的是点击此输入:

<input type='image' class='edit' src='edit.png'>

停止setinterval函数。

3 个答案:

答案 0 :(得分:5)

setInterval会返回一个可以与clearInterval一起使用的句柄来取消它。句柄将是一个大于零的数字。

因此请保存setInterval电话中的句柄:

var handle = setInterval(function () {
    $('div#tab2').load('morefour.php?doc=' + encodeURIComponent(ktitle));
}, 3000);

...如果按下按钮,则使用它取消它:

$("input.edit").click(function() {
    if (handle) {
        clearInterval(handle);
        handle = 0;
    }
});

另请注意,在上面的第一个片段中,我已将区间参数(3000)移动到应该的位置(正如Jared指出的那样,您将其作为load的第二个参数,当然它应该是setInterval)的第二个参数。

答案 1 :(得分:1)

您可以像here一样使用window.clearInterval()。

答案 2 :(得分:0)

您可以使用标记来执行此操作:

<script type="text/javascript">
    var flag = true;
</script>

并将setInterval语句更改为以下内容:

setInterval(function () {
    if (flag) {
        $('div#tab2').load('morefour.php?doc=' + encodeURIComponent(ktitle));
    }
}, 3000);

并更改图片onclick中的标记:

<input type='image' class='edit' src='edit.png' onclick="javascript:flag=false">