Javascript clearInterval无法清除

用户名

我有以下JS代码

$('body').on({
    click: function()
    {
        var el = $(this);
        lookUpTask(el);

        el.bind('blur', function(){
            timeOutTask = setInterval(function(){
                if( timeOutTask )
                {
                    clearInterval(timeOutTask);
                    el.trigger('remove_match');
                }
            }, 500);

            $('body').on({
                click: function(event)
                {
                    var match = $(this);
                    var color = match.attr('color');

                    // Check color to change brightness
                    var brightness = hexToLuminance(color);
                    var text_color = '#000';
                    if( brightness < 128 ) {
                        text_color = '#fff';
                    }

                    // Change color according to brightness
                    el.css('color',text_color);
                    el.parent().parent().children('.remove').css('color',text_color);
                    el.parent().parent().children('.resize').css('color',text_color);

                    // Change the background and task name
                    el.parent().parent().css('background-color', color);
                    el.val(match.html());

                    // Update DB


                    // Remove the task_match
                    el.trigger('remove_match');
                }
            },'.match');
        });

        el.bind('remove_match', function(){
            if( el.val == "" ) {
                el.val('Select Task');
            }
            el.css('text-align','center');
            el.parent().children('.match_results').remove();
            clearInterval(timeOutTask);
        });
    },
    keyup: function(event)
    {
        lookUpTask($(this));
    }
},'.task_select');

我想做的是当用户单击.task_select时,然后显示匹配的结果并将其显示在屏幕上。现在,用户可以选择这些选项之一,也可以单击外部。如果在外面,则匹配的结果应关闭。如果选择了其中一个选项,则中间的整个代码将运行。

问题是,匹配的结果将覆盖在另一个div的顶部,如果单击该div,则会发生其他情况。当我单击匹配的结果时,代码将注册为在外部单击(因此匹配的所选内容消失了,效果就好像我单击了我不想单击的另一个div一样。

因此,我的解决方案是在执行外部单击之前放置一个计时器。一切正常,除了clearInterval不会清除计时器!因此,第二次加载东西时,好像没有清除计时器!

为什么?!

铁木

您正在timeOutTask使用新的时间间隔进行覆盖您可以将时间间隔缓存到数组中,如下所示:

var timeOutTasks = [];
$('body').on({
    ...
    el.bind('blur', function(){
        timeOutTasks.push(setInterval(function(){
            clearInterval(timeOutTasks.pop());
                         ...
        }, 500);
            ...
    }
           ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript /切换/切换/ clearInterval()-切换关闭时无法清除clearInterval()

来自分类Dev

Javascript /切换/切换/ clearInterval()-切换关闭时无法清除clearInterval()

来自分类Dev

Javascript clearInterval将不会清除

来自分类Dev

clearInterval()无法使用javascript

来自分类Dev

javascript clearInterval无法立即运行

来自分类Dev

Javascript:无法清除超时

来自分类Dev

Javascript:无法清除超时

来自分类Dev

无法清除Javascript中的输入

来自分类Dev

Javascript setInterval clearInterval简单示例无法正常工作解释吗?

来自分类Dev

Javascript clearInterval()无法正常工作,如何停止setInterval()?

来自分类Dev

为什么我无法控制 setinterval 和 clearinterval javascript?

来自分类Dev

clearInterval不清除setInterval

来自分类Dev

clearInterval没有清除

来自分类Dev

单击Javascript clearInterval

来自分类Dev

Javascript clearInterval与按钮单击

来自分类Dev

JavaScript中的clearInterval()问题

来自分类Dev

Javascript clearInterval功能

来自分类Dev

Javascript clearInterval用法

来自分类Dev

JavaScript: clearInterval(); 不工作

来自分类Dev

Javascript“clearInterval”方法在 window.onload 之外定义时无法停止计时器

来自分类Dev

Javascript:停止使用 clearInterval 时的 setInterval 计时器无法再次重新启动

来自分类Dev

JavaScript 秒表 SetInterval 忽略 ClearInterval

来自分类Dev

JavaScript间隔未清除

来自分类Dev

清除输入值Javascript

来自分类Dev

通过JavaScript更新输入字段值后无法清除验证消息

来自分类Dev

通过JavaScript更新输入字段值后无法清除验证消息

来自分类Dev

卸载窗口之前要清除clearInterval的原因?

来自分类Dev

clearInterval函数实际上并未清除

来自分类Dev

clearInterval()不会停止setInterval()javascript

Related 相关文章

  1. 1

    Javascript /切换/切换/ clearInterval()-切换关闭时无法清除clearInterval()

  2. 2

    Javascript /切换/切换/ clearInterval()-切换关闭时无法清除clearInterval()

  3. 3

    Javascript clearInterval将不会清除

  4. 4

    clearInterval()无法使用javascript

  5. 5

    javascript clearInterval无法立即运行

  6. 6

    Javascript:无法清除超时

  7. 7

    Javascript:无法清除超时

  8. 8

    无法清除Javascript中的输入

  9. 9

    Javascript setInterval clearInterval简单示例无法正常工作解释吗?

  10. 10

    Javascript clearInterval()无法正常工作,如何停止setInterval()?

  11. 11

    为什么我无法控制 setinterval 和 clearinterval javascript?

  12. 12

    clearInterval不清除setInterval

  13. 13

    clearInterval没有清除

  14. 14

    单击Javascript clearInterval

  15. 15

    Javascript clearInterval与按钮单击

  16. 16

    JavaScript中的clearInterval()问题

  17. 17

    Javascript clearInterval功能

  18. 18

    Javascript clearInterval用法

  19. 19

    JavaScript: clearInterval(); 不工作

  20. 20

    Javascript“clearInterval”方法在 window.onload 之外定义时无法停止计时器

  21. 21

    Javascript:停止使用 clearInterval 时的 setInterval 计时器无法再次重新启动

  22. 22

    JavaScript 秒表 SetInterval 忽略 ClearInterval

  23. 23

    JavaScript间隔未清除

  24. 24

    清除输入值Javascript

  25. 25

    通过JavaScript更新输入字段值后无法清除验证消息

  26. 26

    通过JavaScript更新输入字段值后无法清除验证消息

  27. 27

    卸载窗口之前要清除clearInterval的原因?

  28. 28

    clearInterval函数实际上并未清除

  29. 29

    clearInterval()不会停止setInterval()javascript

热门标签

归档