2011-05-26 34 views
0

我得到这个功能,间隔时间,使一个轮播的自动滚动。鼠标悬停的原型拦截功能

function startInterval() { 
if (totSliders > 1) { 
interval = setInterval("next()", 7000); } 
setInterval("Time()", 1000); 
} 
window.onload = function { 
startInterval() 
} 

我想的是,在鼠标一些 “类UL礼” 元素(每一个),清除功能startInterval()驱动器,停了下来。总之,将鼠标悬停在旋转木马元素上时,自动滚动停止。在鼠标移出,相反,应该重新启动相同的功能(以及自动滚动)。

我指出setInterval(“Time()”,1000);函数包含在父函数中,因此不应在这些鼠标悬停/滚出事件中考虑。它只应该被称为onload。

我怎么能达到我的目标?非常感谢

回答

0

我只是在刺探这一个,因为它有点难以理解的问题。根据我的猜测,您正在尝试将onmouseoveronmouseout事件添加到所有class ul li元素,对吗?如果是这样的话,你可以这样做:

function pauseInterval(evt) { 
    clearInterval(interval); 
} 

function resumeInterval(evt) { 
    interval = setInterval("next()", 7000); 
} 

var listElements = $$('class').getElementsByTagName('li'); 
for (var i = 0; i < listElements.length; i++) { 
    listElements[i].on('mouseover', resumeInterval); 
    listElements[i].on('mouseout', pauseInterval); 
} 

我肯定会bug测试这个,因为我当然没有。

+0

请考虑['Event.on'](http://api.prototypejs.org/dom/Event/on/),而不是单独为每个元素设置观察者,如果仅仅是为了恢复力。 – clockworkgeek 2011-05-26 19:20:55

+0

@clockworkgeek:更新,谢谢。 – Pat 2011-05-26 19:26:33

+0

嗨,对不起,迟到了。我还没有测试过你的代码,但我很快就会做。时间不足。我怎么能尝试代码,更新'Event.on'? – serytankian 2011-06-02 01:00:11