0

テーブル内の行をループして、一度に 1 つだけが表示されるようにする関数があります。

これを拡張して、テーブルにカーソルを合わせるとすべての行が表示され、別の場所に移動すると一度に 1 行ずつ表示されるようにします。

私が抱えている問題は、ホバリング時に最初の機能が続行され、機能を「一時停止」する方法があることです。ClearInterval() を使用してさまざまな例を見てきましたが、それらをスクリプトに一致させることはできません。

//Calling The function that loops through the rows    
function hideShow(time)
{   
    setInterval('showRows()',time); 
};      

//Set the time between each 'loop' and start looping 
$(document).ready(function()
{
    hideShow(2000);
}   
);

//The hover function to show / hide all the rows
$(document).ready(function()
{
    $('#dbTable1 tr').hover(function() 
        {
            $('.Group td').removeClass('RoundBottom');
            $('.Group').show();
        },  
        function()
        {
            $('.Group td').addClass('RoundBottom');
            $('.Group').hide();
        }
    ); 
}
);

2つを組み合わせる方法を教えてください。

4

2 に答える 2

0

次のように、他のことを行う前にホバリング状態を確認することができます。

function showRows() {
    if (isHovering) {
        return;
    }

    // ...
}

変数は、現在のホバリング状態のisHovering単なるブール値であり、コールバック関数によって設定できます。

上記のアプローチでは、タイマーを一度だけ設定して忘れることができます。

于 2012-07-19T17:44:59.937 に答える