【问题标题】:Prototype blocking function on mouseover鼠标悬停时的原型阻止功能
【发布时间】:2011-05-26 15:53:41
【问题描述】:

我得到了这个功能,它会在间隔时自动滚动轮播。

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

我希望,在 鼠标悬停 一些“class ul li”元素(每个)上,函数 startInterval() 驱动器被清除、停止。简而言之,当鼠标悬停在轮播元素上时,自动滚动停止。在鼠标移出上,应该重新启动相同的功能(以及自动滚动)。

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

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

【问题讨论】:

    标签: javascript prototypejs mouseover autoscroll


    【解决方案1】:

    我只是在尝试一下,因为它有点难以理解这个问题。根据我的猜测,您正在尝试将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);
    }
    

    我肯定会对此进行错误测试,因为我肯定没有。

    【讨论】:

    • 请考虑Event.on,而不是单独为每个元素设置观察者,如果只是为了弹性。
    • 嗨,很抱歉迟到了。我还没有测试你的代码,但我很快就会这样做。时间不足。我如何尝试使用 'Event.on' 更新的代码?
    • @asnothingelse 我已经更新了我的答案,已经使用了“Event.on”,所以你应该很高兴。
    • 非常感谢Pat,也感谢clockworkgeek ..我会尽快测试
    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多