我手风琴在一页上。从另一个页面,我想链接到手风琴页面,并通过将“active”添加到该项目的div类中直接打开特定的手风琴项目。使用window.location.hash选择正确的div。
HTML手风琴页面:
<div id="accordion_sp1_id118" class="sp-accordion sp-accordion-style3 ">
<div class="sp-accordion-item">
<div id="#78" class="toggler">
<span>My accordion header 1</span>
</div>
<div class="sp-accordion-container" style="display: none;">
<div class="sp-accordion-inner">
<p>Content panel accordion 1</p>
</div>
</div>
</div>
<div class="sp-accordion-item">
<div id="#99" class="toggler">
<span>My accordion header 2</span>
</div>
<div class="sp-accordion-container" style="display: none;">
<div class="sp-accordion-inner">
<p>Content panel accordion 2</p>
</div>
</div>
</div>
<div class="sp-accordion-item">
<div id="#92" class="toggler">
<span>My accordion header 3</span>
</div>
<div class="sp-accordion-container" style="display: none;">
<div class="sp-accordion-inner">
<p>Content panel accordion 3</p>
</div>
</div>
</div>
</div>
Jquery脚本
<script type="text/javascript">
jQuery(document).ready(function($){
// YOU CAN NOW USE $ AS YOUR jQUERY OBJECT.
$('div[id="'+location.hash+'"]').addClass('active');
});
</script>
手风琴页面的网址包含例如“#92”链接到ID为“#92”的div。这个div应该在其类中添加“活动”。 然而,脚本似乎不起作用:错误在哪里?
请帮忙,坚持这个太久了。我对jquery知之甚少!
答案 0 :(得分:1)
问题可能是哈希值可能包含前导#
(我不认为它在旧浏览器中是统一的,所以我们需要处理这两种情况)
$('div[id="'+location.hash.replace(/^#/, '')+'"]').addClass('active');
或使用id选择器
$(location.hash.replace(/^([^#])/, '#$1')).addClass('active');
答案 1 :(得分:0)
根据激活手风琴的文件,请使用以下
// Getter =&gt; var active = $(&#34; .selector&#34;)。accordion(&#34; option&#34;,&#34; active&#34;);
// Setter =&GT; $(&#34; .selector&#34;)。accordion(&#34;选项&#34;,&#34;有效&#34;,2);
http://api.jqueryui.com/accordion/#option-active
希望这会有所帮助。