Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery在mouseleave上绑定settimeout_Javascript_Jquery_Settimeout - Fatal编程技术网

Javascript 使用jquery在mouseleave上绑定settimeout

Javascript 使用jquery在mouseleave上绑定settimeout,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我使用类和对象以及一点jquery构建了一个带有javascript的幻灯片菜单,这是我深入学习javascript工作的一部分。 一切都很顺利,直到我想在菜单的发起人身上绑一个鼠标。 这是我的代码块 var el; function generate(obj){ return function(){obj.slidein();} } function slider(arg1,arg2){ ...//Some junk el=this; for(i=0;i<this.

我使用类和对象以及一点jquery构建了一个带有javascript的幻灯片菜单,这是我深入学习javascript工作的一部分。 一切都很顺利,直到我想在菜单的发起人身上绑一个鼠标。 这是我的代码块

 var el;
 function generate(obj){
  return function(){obj.slidein();}
  } 
 function slider(arg1,arg2){
 ...//Some junk
 el=this;
 for(i=0;i<this.nsubs;i++){ ...
 $("#"+this.id+i).bind('mouseleave',function(){setTimeout("generate(el)",500)});
  }
 ...
 }
var-el;
函数生成(obj){
返回函数(){obj.slidein();}
} 
功能滑块(arg1、arg2){
…一些垃圾
el=这个;

对于(i=0;i尝试向setTimeout传递函数而不是字符串:

$("#"+this.id+i).bind('mouseleave', function() {
   setTimeout(function() { 
      generate(el); 
   }, 500)
});

好的,我自己解决了,我实际上需要的是一个闭包,它返回一个带有“setTimeout(generate(ObjPassedToClosure))”的函数。

el
有什么?还有for-loop write
(对于var I=0;…
@diEcho:我不知道你的意思!你能详细解释一下吗?(抱歉,我不能在5分钟内编辑它,继续:)执行:setTimeout(generate(el),500);在firefox控制台上,它可以工作。顺便说一句,我还发现在我上面的代码块中删除“环绕生成”函数似乎可以工作,但只对for循环覆盖的最后一个元素有效!(但我希望它对每个元素都有效)我们仍然感谢您的帮助。。