在Object中的Jquery setTimeout

时间:2014-04-10 12:54:30

标签: jquery settimeout

我的JS:

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} 

soo每个.hover的数字是+4

这个整数意味着什么,为什么它不是1,2,3,4 ......?我认为这将是setTimeout的数字,如50,231等,然后我会将clearTimeout设为0,但它不会那样工作。

2 个答案:

答案 0 :(得分:0)

规范中唯一说的是你会得到一个整数,它没有说明订单。

对于甜甜圈来说,赔率是一些定时器数字已被其他进程或线程使用。

答案 1 :(得分: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函数),您很可能在大图中做错了