单击哈希链接时切换页面中的元素

时间:2013-09-17 22:43:14

标签: jquery html css anchor

我有一些jQuery将定义列表转换​​为可扩展/可折叠的常见问题解答列表。

// Toggle expand/collapse
$('.faq a').click(function () {
    $(this).toggleClass('active').next().slideToggle('fast');
});

var hash = document.URL.substr(document.URL.indexOf('#'));
$(hash).addClass('active').next().show();
$(hash).parent().parent().prev('a').addClass('active').next().show();

我在整个网站上有几个常见问题解答链接,点击它们会将您发送到常见问题解答页面并展开相关问题,问题是一些常见问题解答答案中有其他问题的链接,而哈希链接跳转到相关的问题,它没有扩大答案。

这是因为jQuery位于$(document).ready(function()中,所以代码只在重新加载页面后激活吗?我是否需要触发重载?

干杯

See my jsFiddle for full code.

2 个答案:

答案 0 :(得分:0)

单击哈希链接不会重新加载页面,它只是在页面中导航。

您可以将click事件绑定到为您工作的哈希链接。例如:

$('ul li a').click(function() {
   $($(this).attr('href')).toggleClass('active').next().slideToggle('fast');
});

答案 1 :(得分:0)

尝试

//for the demo in fiddle you need to use the selector ul li a
$('.faq dd a[href^="#"]').click(function(){
    $($(this).attr('href')).trigger('click')
})

演示:Fiddle