我正在尝试打开基于URL哈希标记的手风琴。我发现了类似的反应,但每个都使用不同的手风琴。
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),然后打开手风琴。任何帮助将不胜感激。
答案 0 :(得分:0)
分配事件后,执行此操作以模拟点击:
$(window.location.hash).click()