Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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-setInterval()的动态变量名_Javascript_Jquery - Fatal编程技术网

javascript-setInterval()的动态变量名

javascript-setInterval()的动态变量名,javascript,jquery,Javascript,Jquery,兔斯基 兔斯基 兔斯基 var循环=1; 变量间隔=函数(元素,x,y,最后){ var pos=$(元素).css('backgroundPosition').split(''); var xPos=parseInt(位置[0]。拆分('px')[0])-6-6-64; var yPos=parseInt(位置[1]。拆分('px')[0]); var-maxX=(-6-6-64)*(x-1))-6; var maxY=(-6-6-64)*last-6; if(loop==y&&xPos==m


兔斯基
兔斯基
兔斯基
var循环=1;
变量间隔=函数(元素,x,y,最后){
var pos=$(元素).css('backgroundPosition').split('');
var xPos=parseInt(位置[0]。拆分('px')[0])-6-6-64;
var yPos=parseInt(位置[1]。拆分('px')[0]);
var-maxX=(-6-6-64)*(x-1))-6;
var maxY=(-6-6-64)*last-6;
if(loop==y&&xPos==maxY){
//结束1圈
循环=1;
xPos=-6;
yPos=-6;
}else if(循环
回答您的问题:如何同时维护不同间隔的记录,并能够在功能范围之外启动和停止它们

您需要保持具有间隔的关联数组,以便可以同时有多个间隔

<div id="div1" onmouseover="divOver($(this))"></div>
<div id="div2" onmouseover="divOver($(this))"></div>

<script>
var intervals = []
var divOver = function (element) {
   var id = element.attr('id'); // get id

   //call setInterval() with the id
   intervals['i'+id] = setInterval(function(){ /* do something... */ }, 500);

   //clear interval after 1s
   setTimeout(function(){ clearInterval(intervals['i'+id]) }, 1000);
};
</script>

变量间隔=[]
var divOver=函数(元素){
var id=element.attr('id');//获取id
//使用id调用setInterval()
interval['i'+id]=setInterval(函数(){/*做点什么…*/},500);
//1s后清除间隔
setTimeout(函数(){clearInterval(interval['i'+id])},1000);
};

尽管如前所述,这很可能无法解决您的实际问题。

我不明白为什么该代码不起作用
interval
是一个局部变量。你能提供一个fiddle吗?所以它已经支持了一年多了。不需要跑到像JS Fiddle这样的外部托管站点。如果您正确地识别了您的问题,这将是一个重复。但这不太可能帮你解决真正的问题。我仍然觉得更舒服。为什么投票被否决了?它似乎解决了不能动态声明自己的变量名的问题。@somethinghere:我没有否决,但这似乎完全没有必要,因为原始代码在
interval
上关闭,因此不需要首先动态命名。当然,还不完全清楚OP一开始到底想要什么样的行为。@MattBurland同意,但是,在这个网站上的否决投票还是有点太草率了,先问后问。。。从我对这个问题的理解来看,它实际上回答了这个问题。它没有解决问题,但回答了问题。啊,好吧。@somethinghere:如果被否决的选民不厌其烦地评论他们为什么被否决,那就太好了…@BasvanStein:我没有被否决,但这并不意味着我认为被否决的投票需要“纠正”。