2014-04-10 12 views
0

我的JS:的Jquery的setTimeout的对象

timeout_on = {} 
timeout_off = {} 


$('.flex_section a').each(function(){ 
    var a = $(this).attr('id'); 

    $('.flex_section #' + a).hover(function(){ 

     timeout_on['some_id' + a] = setTimeout(function() { popup_show(a); }, 300); 

    }); 
}) 

function popup_show(type){ 
    console.log(timeout_on) 
} 

为什么在控制台日志中我有像成才:

Object {some_id: 1} 
Object {some_id: 5} 
Object {some_id: 9} 

洙数为+4,每.hover

什么这个整数意味着为什么它不是1,2,3,4 ...?我认为这将是一个setTimeout像50,231等数字,然后我会清除Timeout有0,但它不会像那样工作。

回答

0

规范说的唯一的事情就是你会得到一个整数,它不会说任何关于订单的东西。

赔率是,美元兑甜甜圈,一些定时器号码已被其他进程或线程使用。

+0

好,谢谢,所以在这里,每件事都可以。我必须在其他地方搜索bug – Wordica

0

(应该是一个评论,但我需要张贴代码)

您的代码过于复杂。无需为.each()循环:

$('.flex_section a').hover(function(){ 
    var a = this.id; 
    timeout_on['some_id' + a] = setTimeout(function() { popup_show(a); }, 300); 
}); 

顺便说一句,如果使用这样的ID(特别是它传递给popup_show功能),你最有可能做一些错误的大局