0

这是一个 JavaScript 问题,但用于 WordPress 站点/插件。我已经安装了一个常见问题插件,当您单击问题时,它会展开和折叠“答案”,这是一个带有锚点的 h3。所有常见问题解答都显示在一个页面上。

最终我想要实现的是在主页上创建一个链接,比如说“问题十”,这将把访问者直接带到常见问题页面上的“问题十”并展开答案。

到目前为止,我已经能够调整常见问题解答代码以在锚标记上包含一个 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。

在常见问题页面(模板)中,我声明了一个变量:

var anchorName = location.hash; 我添加了一个警报(anchorName),结果是#this-is-question-10。

从那里我试图打电话:

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

和/或

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

从而该函数查找 id = "#this-is-question-ten" 的锚点,并假“点击”该锚点。但是,它不起作用。有任何想法吗?

4

1 回答 1

0

那么javascript在一个页面上运行而FAQ在另一个页面上?比您无法将变量从第一个脚本解析到第二个脚本,而不是修改 URL。

如果您修改 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 回答