0

私が考えていることがうまくいくかどうかさえ確信が持てず、取得するための適切な言葉遣いやリモートで役立つ検索結果を見つけることができないようです。

私ができるようにしたいのは、あるページからのリンクを取得し、リンクされたページを特定の方法で表示することです。以下のコードは、リンク先のページで使用されているスクリプトです。

 $(document).ready(function() {
            $('.hideshow').click(function () {
                var name = $(this).attr('id').replace("-L","");
                if ($(this).hasClass("hidden")) {
                    $(this).addClass("shown");
                    $(this).removeClass("hidden");
                    $('div#' + name).show(500);
                } else {
                    $(this).addClass("hidden");
                    $(this).removeClass("shown");
                    $('div#' + name).hide(500);
                }
            });
        });

このコードは、ファイルの本文で使用されている ID 名を使用してページ上のリンクがクリックされたときに、コンテンツを表示または非表示にします。今私ができるようにしたいのは、前のページからのリンクに、このページの特定のリンクが表示されていることを示すことです。以下は、本文内のコードの一部です。

<a class="hideshow hidden" id="cat-articles-L" style="cursor:pointer;"><font style="font-size:24px; color:#06F; text-decoration:underline;"> Cat Articles</font></a><br />
                   <div id="cat-articles" style="display:none;">
                   &nbsp;&nbsp;&nbsp;&nbsp;<a class="hideshow hidden" id="cat-beds-L" style="cursor:pointer;"><font style="font-size:18px; color:#06F; text-decoration:underline;">Cat Beds</font></a><br />

デフォルトでは、「猫の記事」が表示されますが、「猫のベッド」は「猫の記事」をクリックするまで非表示になっています。その後、サブレベルが存在する可能性があるため、「猫のベッド」の下にさらにアイテムが表示されます。アイデアは、他のページからリンクしてロードすることです特定のアイテムがすでに開いています。このサイトにはまだ新しく、質問を投稿することで、これを十分に明確にしたことを願っています。

4

1 に答える 1

0

元のページのリンクにパラメータを追加します。のようなものdomain.com/page.html?id=5で、JavaScript で QueryString をチェックし、それを使用しidてスイッチのようなことを行います。

JavaScript でクエリ文字列値を取得する方法を参照してください。慣れていない場合は、QueryStrings を取得する方法を参照してください。

複数の同じタイプ (複数の ID など) を渡す必要がある場合は、配列を作成し、その配列を他のページに渡すことができます。その配列には、表示するすべての ID を含めます。

URL への配列の例をここで参照してください: URLencoded への JavaScript 配列

例 (元のページ):

var idArray = new Array(1,5,15,38);
var url = "http://www.blah.com/link.html?"+idArray.join('&');

例(リンク先ページ):

var qs = (function(a) {
    if (a == "") return {};
    var b = {};
    for (var i = 0; i < a.length; ++i)
    {
        var p=a[i].split('=');
        if (p.length != 2) continue;
        b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
    }
    return b;
})(window.location.search.substr(1).split('&'));
var idArray = qs["id"];
for (var i = 0; i < idArray.length; i++) {
    switch(idArray[i]){
        case 1:
            //show link1
            break;
        case 2:
            //show link3
            break;
        default:
            //do nothing, but required
            break;
    }
}

注: JQuery を使用しているように見えるかもしれませんが、そうではありません。これは、それなしでうまく機能します。

于 2013-07-24T21:41:00.153 に答える