0

特定の要素をクリックしたときにdivを表示するために開く関数を作成しました。私はこれらのいくつかを1つのページに持っています。特定の div のみを開いた状態でそのページにリンクするにはどうすればよいですか?

HTML:

<div class="heading">
    <p>
        <a href="#">....</a>
    </p>
</div>
<div class="more">
    <p>...</p>
</div>

etc.

jQuery:

<script type="text/javascript">
    $(function () {
        if($('.heading')[0]) {
            $('.heading').toggle(function () {
                $(this).next('.more').slideDown();
            },

            function () {
                $(this).next('.more').slideUp();
            });
            $("a[href='" + window.location.hash + "']").parent(".heading").click();
        }
    })
</script>

編集:各非表示の div に id を追加し、次の関数で機能しました!

window.onload = function() {
    var hash = window.location.hash;
    if(hash != "") {
        var id = hash.substr(1); 
        document.getElementById(id).style.display = 'block';
    }
};
4

2 に答える 2

2

jquery に、リンク先のページの URL にクエリ文字列を追加させることもできます。これにより、myurl.html?opened=div_3 など、開かれた DIV が「引き継がれ」ます。

# also を使用してそれを行う方法があるかもしれませんが、どちらも少しぎこちなく、望ましくないようです。

Ajax を実行して、それを PHP セッションに格納することもできます。

(私はこれがナビゲーションのアコーディオン スタイルのメニューで行われるのを見たことがありますが、ページから親を知っているので、たとえばその LI を開きます)。

追加する編集: これは、クエリ文字列を見て、どの DIV を開く必要があるかを判断するために使用できる Javascript 関数へのリンクです: http://www.svlada.com/blog/2012/06/15/how- to-get-url-parameters-javascript/

于 2012-08-02T14:00:31.517 に答える
0

私はこれがあなたが探している答えだと信じています.... HAPPY CODING!

デモhttp://jsfiddle.net/bfVYB/11/

于 2012-08-02T18:41:27.883 に答える