1

setIntervel() を使用する関数があり、この関数の実行を明示的に停止したいのですが、どうすればよいですか???関数は..

function autoLoad(chatboxtitle, msgId) {
    setInterval(function() {
        if (msgId != '') {
            $.ajax({
                type: "POST",
                url: "../WebService1.asmx/GetMessagesDetail",
                data: '{ "messageID": "' + msgId + '" }',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: true,
                cache: false,
                success: function(msg) {
                    $("#chatbox_" + chatboxtitle + ".chatboxcontent").empty();
                    $("#chatbox_" + chatboxtitle + ".chatboxcontent").append(msg.d);
                    $contentLoadTriggered = false;
                },
                error: function(x, e) {
                    alert("error");
                }
            });
        }
    }, 8000);
}
4

1 に答える 1

10

関数を終了することを意味するが、間隔を停止しない場合 (関数が再び起動するようにするため)、単にreturn関数から離れる必要があります。

間隔を停止する場合、つまり関数の再起動を停止する場合は、変数に間隔への参照を割り当ててから、必要に応じてそれをクリアする必要があります。

var intie = setInterval(function() { alert('hello'); }, 5000);
clearInterval(intie);
于 2012-07-11T13:49:32.543 に答える