我正在尝试根据 URL 散列标签打开 Accordion 。我发现了类似的响应,但每个响应都使用不同的 Accordion 。
HTML脚本如下:
<div class="contractable">
<div class="header">
<h1>Branding</h1>
<a class="contractTrigger" href="#branded"></a>
</div>
<div id="branded" class="content">
<div class="spacing">
<p>text</p>
</div>
</div>
</div>
JS 是:
$(function()
{
$('.contractable').each(function()
{
// Get natural height.
var $contractable = $(this);
var naturalHeight = $contractable.height();
$contractable.data('naturalHeight', naturalHeight);
// Set default properties.
$contractable.find('.content').addClass('closed').css(
{
'height': 0,
'overflow': 'hidden'
});
});
$('.contractable .contractTrigger').click(function(e)
{
e.preventDefault();
var $trigger = $(this);
var $contractable = $trigger.parents('.contractable');
var $content = $contractable.find('.content');
if($content.hasClass('open'))
{
$content.animate(
{
'height': 0
}, 300, function()
{
$content.removeClass('open');
$content.addClass('closed');
});
}
else
{
$content.animate(
{
'height': $contractable.data('naturalHeight')
}, 300, function()
{
$content.removeClass('closed');
$content.addClass('open');
});
}
}
});
});
function closeWindow() {
parent.parent.GB_hide();
}
我可以使用 var hash_value = window.location.hash.replace('#', ''); 轻松获得散列标签但我坚持如何将散列与 div id 匹配(因为会有几个不同的 div),然后打开 Accordion 。任何帮助将不胜感激。
最佳答案
分配事件后,执行此操作以模拟点击:
$(window.location.hash).click()
关于javascript - 用散列标签打开 Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8935337/