1

jQueryについてはよくわかりませんが、次のjavascriptコードを使用して、ページバック時にテーブルがスクロールバーの位置を保持するようにしています。

<script type="text/javascript">
    window.onload = function () {
        var strCook = document.cookie;
        if (strCook.indexOf("!~") != 0) {
            var intS = strCook.indexOf("!~");
            var intE = strCook.indexOf("~!");
            var strPos = strCook.substring(intS + 2, intE);
            document.getElementById("grdWithScroll").scrollTop = strPos;
        }
    }
    function SetDivPosition() {
        var intY = document.getElementById("grdWithScroll").scrollTop;
        document.cookie = "yPos=!~" + intY + "~!";
    }
</script>

<div id="grdWithScroll" onscroll="SetDivPosition()">

単一のdivに最適です。しかし、2番目のdivセクションで使用するためにこれをどのように拡張できますか?

4

3 に答える 3

1

document.getElementByIdを使用する代わりに、この機能が必要なすべてのdivに同じクラス名を割り当て、jQueryセレクター$( "。scrollgrid")を使用して複数のdivを選択し、スクロールトップを保存できます。jQueryを使用したくない場合は、クラス名で要素を選択するためにユーザーが作成したカスタム関数を確認できます。これが例です。

http://www.netlobo.com/javascript_getelementsbyclassname.html

于 2012-09-13T14:41:46.347 に答える
1

単一のdivIDの代わりに、class属性を使用して、機能を使用するすべてのdivを定義できます。

<div id="grdWithScroll" class="coolScroll" onscroll="SetDivPosition()">
</div>
<div id="abcWithScroll" class="coolScroll" onscroll="SetDivPosition()">
</div>

jQuery(または他のライブラリ)を使用して、上記のクラスを持つすべてのdivを簡単に選択し、scrollTop属性にアクセスします

$('.coolScroll').each( function()
{
// do something with scrollTop
}

クラスセレクターを使用して、onscroll関数を設定することもできます。

$('.coolScroll').attr( 'onscroll' , 'javascript:SetDivPosition()' );
于 2012-09-13T14:48:41.540 に答える
1

私がここで探していたものを見つけました:

http://social.msdn.microsoft.com/Forums/nb-NO/jscript/thread/ad18ed20-8ae2-4c13-9a51-dcb0b1397349

<script language="javascript" type="text/javascript">

//This function sets the scroll position of div to cookie.
function setScrollPos() {
    var div1Y = document.getElementById('div1').scrollTop;
    var div2Y = document.getElementById('div2').scrollTop;
    document.cookie = "div1Pos=!*" + div1Y + "*!" + 
    " div2Pos=|*" + div2Y + "*|";
}

///Attaching a function on window.onload event.
window.onload = function () {
    var strCook = document.cookie; if (strCook.indexOf("!~") != 0) {
        var intS = strCook.indexOf("!~");
        var intE = strCook.indexOf("~!"); 
        var strPos = strCook.substring(intS + 2, intE);
        document.body.scrollTop = strPos;
    }

    /// This condition will set scroll position of <div> 1.
    if (strCook.indexOf("iv1Pos=!*") != 0) {
        var intdS = strCook.indexOf("iv1Pos=!*");

        var intdE = strCook.indexOf("*!");
        var strdPos = strCook.substring(intdS + 9, intdE);
        document.getElementById('div1').scrollTop = strdPos;
    }

    /// This condition will set scroll position of <div> 2.
    if (strCook.indexOf("iv2Pos=!*") != 0) {
        var intdS = strCook.indexOf("iv2Pos=|*");
        var intdE = strCook.indexOf("*|");
        var strdPos2 = strCook.substring(intdS + 9, intdE);
        document.getElementById('div2').scrollTop = strdPos2;
    }
}

</script>
于 2012-09-13T15:04:58.200 に答える