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 に答える