0

代码有什么问题,我无法停止 setInterval。

错误:changedHandler_BB 未定义。

...

var changedHandler_BB = setInterval(function() {

    $("#wc_room_container_BB").addClass('active_chat_block_blink_effect');

    setTimeout(function() {
        $("#wc_room_container_BB").removeClass('active_chat_block_blink_effect');
    }, 500);

}, 1000);

...

$("#wc_block_BB").click(function(){

    var newID = $("#LatestLastID_BB").val();

    $("#worldchat_last_id_BB").val(newID);

    clearInterval(changedHandler_BB);
});
4

3 回答 3

0

只需删除'var':

changedHandler_BB = setInterval(function() {...}); //setting variable on global scope {window.changedHandler_BB }
于 2013-05-21T12:03:48.203 回答
0

根据上面的评论-您changedHandler_BB在函数中定义。您需要在外部范围内定义它,以便它可以在其他函数中访问

试试这个 -

var changedHandler_BB;

function someFunction() {
    changedHandler_BB = setInterval(function () {
        $("#wc_room_container_BB").addClass('active_chat_block_blink_effect');
        setTimeout(function () {
           $("#wc_room_container_BB").removeClass('active_chat_block_blink_effect');
        }, 500);
    }, 1000);
}
$("#wc_block_BB").click(function () {
    var newID = $("#LatestLastID_BB").val();
    $("#worldchat_last_id_BB").val(newID);
    clearInterval(changedHandler_BB);
});
于 2013-05-21T12:05:12.307 回答
0

changedHandler_BB在另一个函数中。因此,它在该函数的范围内,而不是在clearInterval单击事件处理程序内部可访问的范围内。这就是为什么当您尝试访问它时它是未定义的。

您需要确保它changedHandler_BB与单击事件侦听器在同一范围内,或者可以通过其他方式访问。

于 2013-05-21T12:05:41.603 回答