我正在使用这段代码:
小提琴: http://jsfiddle.net/2hmzcgqm/12/
现在我可以将#rugby
用于手风琴中的某个span
。
我希望能够将其扩展为使用#football
。有人可以帮忙吗? : - )
使用Javascript:
(function($) {
var allPanels = $('.accordion > dd').hide();
var allLinks = $('a.heading');
$('.accordion > dt > a').click(function() {
allPanels.slideUp();
//Remove all
allLinks.removeClass('active');
if ($(this).parent().next().is(":visible")) return false;
$(this).parent().next().slideDown();
//Add active class
$(this).addClass('active');
return false;
});
//$('.accordion > dt > a').first().trigger('click');
function setAccordion() {
// Get id from url
// var url = window.location.pathname;
// Test url
var url = 'localhost:58000/gallery#rugby';
var id = url.substring(url.lastIndexOf('#')); // This will give you #football
var spanTag = $('.accordion').find(id); //#football span tag
var parentTag = spanTag.closest('dd');
//open the accordion
allPanels.slideUp();
parentTag.slideDown();
parentTag.prev('dt').find('a.heading').addClass('active');
}
// Call the function
setAccordion();
})(jQuery);
答案 0 :(得分:0)
首先,我们无法为您编写完整的代码,这不是Stackoverflow的重点。 但是,我们可以帮助您向正确的方向搜索。
如果您想在网址中定义多个元素,可以看到以下示例Jquery reading several array parameters from url
然后从url中捕获params并创建一个数组,然后迭代打开或设置正确的折叠项目。
var arrayParams = [];
$.each(arrayParams, function(key, value) {
// Get every item from the url and open the correct accordion item
});