我是 jQuery 的新手。
在主页上,我有 4 个指向手风琴页面的链接。
例如: http: //pluscoating.falcondesign.nl/poedercoaten/#2
这必须打开 ID 为 2 的手风琴。
我想出了如何在哈希之后添加一个活动类。现在的问题是,“活动”类被放置在“a”元素之后。但必须在“acc-trigger”类之后添加。那么我该怎么做呢?
我的html代码:
<div>
<span class="acc-trigger">
<a id="1" href="#">Title 1</a>
</span>
<div class="acc-container">
<div class="content">content 1</div>
</div>
<span class="acc-trigger">
<a id="2" href="#">Title 2</a>
</span>
<div class="acc-container">
<div class="content">content 2</div>
</div>
<span class="acc-trigger">
<a id="3" href="#">Title 3</a>
</span>
<div class="acc-container">
<div class="content">content 3</div>
</div>
<span class="acc-trigger">
<a id="4" href="#">Title 4</a>
</span>
<div class="acc-container">
<div class="content">content 4</div>
</div>
</div>
jQuery代码:
(function() {
var $container = $('.acc-container'),
$trigger = $('.acc-trigger');
var hash = window.location.hash.substring( 1 );
$container.hide();
$trigger.first().addClass('active').next().show();
if( hash ) {
var accordItem = $('.acc-trigger a#' + hash);
$trigger.removeClass('active').next().slideUp(300);
accordItem.addClass('active').next().show();
}
var fullWidth = $container.outerWidth(true);
$trigger.css('width', fullWidth);
$container.css('width', fullWidth);
$trigger.on('click', function(e) {
if( $(this).next().is(':hidden') ) {
$trigger.removeClass('active').next().slideUp(300);
$(this).toggleClass('active').next().slideDown(300);
}
e.preventDefault();
});
// Resize
$(window).on('resize', function() {
fullWidth = $container.outerWidth(true)
$trigger.css('width', $trigger.parent().width() );
$container.css('width', $container.parent().width() );
});
})();