2

我有<p>元素:

<p id="news_title">Text goes here</p>

我在此 JavaScript 的帮助下运行文本:

(function(){
var j = 0;
var el = document.getElementById("news_title");
var interval;
function runEngine(){
    interval = setInterval(function(){
        if (j===200){
            j=-200;
        }
        el.style.left = j + "px";
        j++;
    },20);
}

window.onload = function(){
    runEngine();
};
})();

标记的脚本运行良好,但我想暂停文本onmouseoveronmouseout让它继续运行。另外,onclick我想永远停止它。

el.onmouseover = function(){
   clearInterval(interval);
};  // pausing , working nicely

el.onmouseout = function(){
    runEngine();
};  // also working

但是,onclick它不起作用。即使我清除了间隔,onmouseout处理程序也会导致文本再次运行。我怎样才能防止这种情况?

4

1 回答 1

3

单击时,设置一个标志。然后检查onmouseout处理程序中的标志:

var clicked = false;

el.onclick = function() {
    clicked = true;
};

el.onmouseout = function() {
    if (!clicked) {
        runEngine();
    }
};
于 2012-05-19T15:40:02.080 回答