如何在页面加载时将Jquery accordion属性传递给面板,而不是单击事件

时间:2014-09-30 08:06:55

标签: javascript jquery jquery-ui-accordion

您好我正在打开外部链接页面的手风琴面板。它工作正常,但页面没有达到手风琴面板活动的顶部。在某些点,它在屏幕外(可见页面区域下方)。 如何将我的手风琴活动面板移动到页面顶部。如果我单击面板但是没有使用类似这样的URL的paqge加载,它工作正常

http://22april/imagine2013.php?id=1$panel=10#accordion

这个网址为我提供了活跃的手风琴面板,但在点击面板时,页面并没有显示出来。

function getParam(name) {
var query = location.search.substring(1);
var myString = query.substr(query.indexOf("$") + 1)

if (myString.length) {
    var parts = myString.split('&');
    for (var i = 0; i < parts.length; i++) {
        var pos = parts[i].indexOf('=');
        if (parts[i].substring(0,pos) == name) {
        return parts[i].substring(pos+1);
        }
    else{
        return parts[i].substring(pos); 
        }
    }
}
return 0;
} 

$(function () {
   var defaultPanel = parseInt(getParam('panel'));


$("#accordion").accordion({
     heightStyle: "content",
    collapsible:true,
    active:defaultPanel,
    navigation:true,
    activate: function (event, ui) {    //this particular code works when i click on accordion but not when page load and targeted accordion opens on that page.
        var scrollTop = $(".accordion").scrollTop();
        console.log(ui.newHeader);
        if(!ui.newHeader.length) return;

        var top = $(ui.newHeader).offset().top;
        $("html,body").animate({
            scrollTop: scrollTop + top - 5
        }, "slow");
    }

});

这是html部分

<ul id="accordion" class="accordion">

<li><a href="#">TEXT</a>
<ul id="ac1" class="accordion1">
    <li> <a href="#">Title of second accordion</a>
    <ul>Content of second accordion</ul> 
    </li>
</ul>
</li>

如果需要更多信息,请与我们联系。 帮助我。

0 个答案:

没有答案