鼠标停留图片上,清除计时器问题

Critian 2014-01-07 10:19:55
以下代码,为何不能清除计时器,
var imglist=new Array(4);//图片个数
imglist[0]="Images/main01.jpg"; //第一个图片的地址
imglist[1]="Images/main02.jpg";
imglist[2]="Images/main03.jpg";
imglist[3]="Images/main04.jpg";
var i=0;
var timeid=setInterval("changeimg()",5000);
function changeimg()
{
if(i==imglist.length)
{
i=0;
}
document.getElementById("tp").src=imglist[i];
++i;
};
imglist[i].onmouseover=function stop(){clearInterval(timeid);};
...全文
366 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿鱼 2014-01-09
  • 打赏
  • 举报
回复
引用 7 楼 u013412386 的回复:
[quote=引用 5 楼 qwklove 的回复:] [quote=引用 4 楼 u013412386 的回复:] imglist[i].onmouseover=function(){clearinterval(timeid);} 试了,不行, 鼠标移上去之后还是不能暂停图片的切换。
imglist[i]是个字符串,你给它绑定mouseover没用。 可以这样: document.getElementsByTagName('img')[i].onmouseover=function(){clearinterval(timeid);}[/quote] 确定是'img' 不是'imglist' ?[/quote] document.getElementsByTagName('img')[i].onmouseover=function(){clearinterval(timeid);}这个只是为了说明应该把mouseover绑到html元素上(在这儿是绑在了第一张图上),至于具体绑到哪个或哪些元素上,那就看你想绑到哪了。
孤飞不倦 2014-01-09
  • 打赏
  • 举报
回复
调试确定一下,是onmouseover事件问题还是timeid的问题。
孤飞不倦 2014-01-09
  • 打赏
  • 举报
回复
你debug一下,看timeid的值有没有变化。
Critian 2014-01-09
  • 打赏
  • 举报
回复
引用 6 楼 skyliuxiuping 的回复:

	var imglist=new Array(4);//图片个数
	imglist[0]="http://gtms01.alicdn.com/tps/i1/T1qHXwFpFtXXckL6Z0-130-130.png";  //第一个图片的地址
	imglist[1]="http://gtms01.alicdn.com/tps/i1/T1At3BFo4eXXaCwpjX.png";
	imglist[2]="http://gtms01.alicdn.com/tps/i1/T1xk6iFXXfXXcxTSUh-180-130.jpg";
	imglist[3]="http://gtms01.alicdn.com/tps/i1/T1SJQfFoRfXXcxTSUh-180-130.jpg";
	var i=0;
	var timeid=setInterval("changeimg()",2000);
	function changeimg(){
		if(i==imglist.length){
			i=0;
		}
		document.getElementById("tp").src=imglist[i];
			++i;
	};
	document.getElementById("tp").onmouseover=function stopobj(){
		if(timeid) clearInterval(timeid);
	};
	
	document.getElementById("tp").onmouseout=function changeobj(){
		timeid = setInterval("changeimg()",2000);
	};
试了您的方法,也不能暂停图片的切换
Critian 2014-01-09
  • 打赏
  • 举报
回复
引用 5 楼 qwklove 的回复:
[quote=引用 4 楼 u013412386 的回复:] imglist[i].onmouseover=function(){clearinterval(timeid);} 试了,不行, 鼠标移上去之后还是不能暂停图片的切换。
imglist[i]是个字符串,你给它绑定mouseover没用。 可以这样: document.getElementsByTagName('img')[i].onmouseover=function(){clearinterval(timeid);}[/quote] 确定是'img' 不是'imglist' ?
Critian 2014-01-09
  • 打赏
  • 举报
回复
引用 9 楼 imi233 的回复:
你debug一下,看timeid的值有没有变化。
谢谢您!
Critian 2014-01-09
  • 打赏
  • 举报
回复
引用 12 楼 chenzhi246265 的回复:
document.getElementById("tp").src=imglist[i];在这句话后面加document.getElementById("tp").onmouseover=function stop(){clearInterval(timeid);};试试,因为setInterval返回的timeid必须确保和clearInterval(timeid)的值一样
谢谢大神点拨,不胜感激。
Critian 2014-01-09
  • 打赏
  • 举报
回复
引用 6 楼 skyliuxiuping 的回复:

	var imglist=new Array(4);//图片个数
	imglist[0]="http://gtms01.alicdn.com/tps/i1/T1qHXwFpFtXXckL6Z0-130-130.png";  //第一个图片的地址
	imglist[1]="http://gtms01.alicdn.com/tps/i1/T1At3BFo4eXXaCwpjX.png";
	imglist[2]="http://gtms01.alicdn.com/tps/i1/T1xk6iFXXfXXcxTSUh-180-130.jpg";
	imglist[3]="http://gtms01.alicdn.com/tps/i1/T1SJQfFoRfXXcxTSUh-180-130.jpg";
	var i=0;
	var timeid=setInterval("changeimg()",2000);
	function changeimg(){
		if(i==imglist.length){
			i=0;
		}
		document.getElementById("tp").src=imglist[i];
			++i;
	};
	document.getElementById("tp").onmouseover=function stopobj(){
		if(timeid) clearInterval(timeid);
	};
	
	document.getElementById("tp").onmouseout=function changeobj(){
		timeid = setInterval("changeimg()",2000);
	};
谢谢大神,本人小菜鸟谢谢您了
chenzhi246265 2014-01-09
  • 打赏
  • 举报
回复
document.getElementById("tp").src=imglist[i];在这句话后面加document.getElementById("tp").onmouseover=function stop(){clearInterval(timeid);};试试,因为setInterval返回的timeid必须确保和clearInterval(timeid)的值一样
刘天空 2014-01-08
  • 打赏
  • 举报
回复

	var imglist=new Array(4);//图片个数
	imglist[0]="http://gtms01.alicdn.com/tps/i1/T1qHXwFpFtXXckL6Z0-130-130.png";  //第一个图片的地址
	imglist[1]="http://gtms01.alicdn.com/tps/i1/T1At3BFo4eXXaCwpjX.png";
	imglist[2]="http://gtms01.alicdn.com/tps/i1/T1xk6iFXXfXXcxTSUh-180-130.jpg";
	imglist[3]="http://gtms01.alicdn.com/tps/i1/T1SJQfFoRfXXcxTSUh-180-130.jpg";
	var i=0;
	var timeid=setInterval("changeimg()",2000);
	function changeimg(){
		if(i==imglist.length){
			i=0;
		}
		document.getElementById("tp").src=imglist[i];
			++i;
	};
	document.getElementById("tp").onmouseover=function stopobj(){
		if(timeid) clearInterval(timeid);
	};
	
	document.getElementById("tp").onmouseout=function changeobj(){
		timeid = setInterval("changeimg()",2000);
	};
阿鱼 2014-01-08
  • 打赏
  • 举报
回复
引用 4 楼 u013412386 的回复:
imglist[i].onmouseover=function(){clearinterval(timeid);} 试了,不行, 鼠标移上去之后还是不能暂停图片的切换。
imglist[i]是个字符串,你给它绑定mouseover没用。 可以这样: document.getElementsByTagName('img')[i].onmouseover=function(){clearinterval(timeid);}
Critian 2014-01-08
  • 打赏
  • 举报
回复
imglist[i].onmouseover=function(){clearinterval(timeid);} 试了,不行, 鼠标移上去之后还是不能暂停图片的切换。
似梦飞花 2014-01-07
  • 打赏
  • 举报
回复
imglist[i].onmouseover={clearInterval(timeid);}; 试试
Critian 2014-01-07
  • 打赏
  • 举报
回复
怎么绑,高手,指点下, tp.onmouseover?
keatkeat1987 2014-01-07
  • 打赏
  • 举报
回复
试试把事件绑定在 tp element 吧.

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧