1

SOの他の場所で見つけたこのコードを使用しています:

// When document is ready...
$(document).ready(function() {

// If cookie is set, scroll to the position saved in the cookie.
if ( $.cookie("scroll") !== null ) {
    $(document).scrollTop( $.cookie("scroll") );
}

// When a button is clicked...
$(':submit').on("click", function() {

    // Set a cookie that holds the scroll position.
    $.cookie("scroll", $(document).scrollTop() );

});

});

私は cookie.js ファイルを持っていますが、コードは素晴らしく機能します。ただし、このコードが送信後にのみ実行されるようにしたいと思います...現在、すべてのロードで最後のスクロール位置に移動しますが、これは私が望んでいるものではありません。

明らかに$(document).ready、コードは何もしないため、の Cookie をクリアすることはできません。何か案は?

編集 -

このコードを試してみましたが、サイコロはありません (今はまったく機能しません):

<script type="text/javascript">

$(document).ready(function() {
$(':submit').on("click", function() {

 $.cookie("scroll", $(document).scrollTop() );

     if ( $.cookie("scroll") !== null) {
         $(document).scrollTop( $.cookie("scroll") );
         $.cookie('scroll', null, { path: '/' });
     }
 });

});
</script>
4

1 に答える 1

4

これが私がやっていることのために働くものです:

<script type="text/javascript">
// When document is ready...
$(document).ready(function() {

// If scroll AND location cookie is set, and the location is the same
//scroll to the position saved in the scroll cookie.
if ( $.cookie("scroll") !== null && $.cookie("location") !== null 
           && $.cookie("location") == $(location).attr('href')) {
    $(document).scrollTop( $.cookie("scroll") );
}

// When a button is clicked...
$(':submit').on("click", function() {

// Set a cookie that holds the scroll position.
$.cookie("scroll", $(document).scrollTop() );

// set a cookie that holds the current location.
$.cookie("location", $(location).attr('href'));


});

});
</script>
于 2013-09-21T00:56:49.040 に答える