1

私のウェブサイトの「概要」ページで、「次へ」ボタンをクリックすると、いくつかのスライドが表示されます。これは、「count」と呼ばれる変数と jquery を使用して行われます。

$("#NextBtn").click(function() {
  count = count + 1
});

$("#NextBtn").click(function(){

/*on count=0, the background image is shown*/

if (count==1) {
  $('#slides').slideToggle();
};


if (count==2) {
  $("#slide_1").hide()
$("#slide_2").show()

};

if (count==3) {
  $("#slide_2").hide()
$("#slide_3").show()

};

私のホームページ (./*home.html) のリンクをクリックすると、スライド番号 2 が表示されたこの「概要」ページにユーザーを送りたいと思います。

<a href="./*about.html">Click here</a>

これどうやってするの?リダイレクトに「カウント」の値を渡すことはできますか? ユーザーがホームページから来ている場合、スライド 2 を表示するように jquery に指示できますか?

どうしようか迷ってます… よろしくお願いします!

4

3 に答える 3

2

ページにとどまりながらスライドを表示している場合は、単純に変数を追跡できます。そうでない場合は、次のいくつかの方法があります。

  • データを渡しGETます。この回答を参照してください。URL の変更 (リンクの送信には適していますが、短い URL には適していません)、サーバーでも表示されます
  • データを渡しPOSTます。サーバーを変更できない場合は実際にはオプションではありませんが (それ以外の場合はあまり良いものではありません)、URL は変更しません。
  • クッキーを設定します。複数のタブ/ウィンドウがある場合、奇妙な動作をする可能性があります。
  • 場所を追加し#ます。# をまだ使用していない場合は、これが最も適切だと思います。フォームの GET データには干渉しませんが、ユーザーは正しいスライドを含む URL を友人に送信できます。これを参照してください。

TL;DR: スライド番号をリダイレクト URL に追加し、その#前にawindow.location.hashを付けてから、次のページでそれを取得するために使用します。

編集:これが実際のコード例です

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
        <script type="text/javascript">
            var def = '#slide1';

            function slide_jump(goal)
            {
                if (goal[0] == '#')
                {
                    goal = goal.substring(1)
                }
                $('[name^="slide"]').hide();
                if (goal)
                {
                    $('[name=' + goal + ']').show();
                }
                else
                {
                    window.location.replace(def);
                    $('[name=#' + goal + ']').show();
                }
            }

            $(document).ready(function()
            {
                slide_jump(document.location.hash);
                $('#nav a').each(function(k, elem)
                {
                    $(elem).click(function (elem, event)
                    {
                        slide_jump($(elem).attr('href'));

                    }.bind(null, elem));
                });
            });
        </script>
    </head>
    <body>
        <div id="nav">
            <a href="#slide1">First</a>
            <a href="#slide2">Second</a>
        </div>
        <div name="slide1">
            Hello and welcome on slide 1!
        </div>
        <div name="slide2">
            So we are on slide 2, then?
        </div>
    </body>
</html>
于 2013-06-24T18:09:03.143 に答える
0

変数 count を渡します。

<a href="./*about.html?count=2">Click here</a>

これを介してカウントに渡された数を取得できます: How can I get query string values in JavaScript?

次に、jQuery を適切なスライドに進めます。

于 2013-06-24T17:59:22.960 に答える