0

これは JavaScript に関する質問ですが、WordPress サイト/プラグインで使用するためのものです。アンカー付きの h3 である質問をクリックすると、「回答」を展開および折りたたむ FAQ プラグインをインストールしました。すべての FAQ が 1 つのページに表示されます。

最終的に私が達成したいことは、ホーム ページに「質問 10」としましょう。これにより、訪問者は FAQ ページの「質問 10」に直接移動し、回答が展開されます。

これまでのところ、FAQ コードを微調整して、アンカー タグに ID を含めることができました。

id="' . basename(get_permalink()) . '"

その特定の質問の URL が mysite.com/faq/this-is-question-ten の場合、アンカーの結果の ID は「this-is-question-ten」になります。

そこから、ホームページにリンク用のhrefを作りました= mysite.com/faq-page#this-is-question-ten.

FAQ ページ (テンプレート) で、変数を宣言しました。

var anchorName = location.hash; アラート (anchorName) を追加しました。結果は #this-is-question-ten です。

そこから私は電話しようとしました:

$('#this-is-question-ten').click(); 

および/または

$('#this-is-question-ten').trigger('click'); 

これにより、関数は id = "#this-is-question-ten" のアンカーを探し、アンカーを偽の "クリック" します。しかし、それは機能していません。何か案は?

4

1 に答える 1

0

さて、JavaScriptは1つのページで実行され、FAQは別のページにありますか?URLを変更せずに、最初のスクリプトから2番目のスクリプトに変数を解析することはできません。

URLを変更すると、そのようなリンクを作成することもできます

http://www.example.com/faq.php#this-is-question-ten

残りはブラウザが行います。

指定されたアンカーノードを展開するには、クリックをエミュレートしようとせずに、展開関数を呼び出すだけです(使用するプラグインに基づいて、そのための正しい呼び出しを見つける必要があります)

たとえば

$("#question-10").expand();
//or
$("#question-10").show();
//or
$("#question-10").toggle();

覚えておいてください:#question-10はクリックする「ボタン」またはオブジェクトではありませんが、答えが隠れている隠されたコンテナです;)

例:

<div class="faq">
    <a id="question-10" onclick="answer.expand('answer-10');"> This is the question </a>

    <div id="answer-10" style="display:none">
     THIS IS THE HIDDEN ANSWER
    </div>
</div>

質問のクリックをエミュレートする代わりに、上記のようなレイアウトがあるとします。

$("question-10").click();

むしろ、下にある関数を直接呼び出す必要があります。

if(anchorName == "question-10")
{
     answer.expand('answer-10');
}
于 2013-02-05T16:07:36.700 に答える