从手风琴小组中,我发布一些数据,然后重新加载页面。我希望当前面板的重新加载能够打开并聚焦在屏幕上,而不是重新打开第一个面板并将我移回屏幕顶部。我知道我想打开哪个面板,所以我不需要代码来找出面板,只是如何显示它。
$.post('<%= ResolveUrl("~/Contract/AddContractLocation") %>', $(form).serialize(), function (data) {
if (data.Result == "success") {
... yada yada...
window.location.reload();
}
编辑添加:
这就是我初学手风琴的方式:
$("#acc").accordion({
autoHeight: false,
navigation: true
});
这是基本结构:
<fieldset>
<legend>Contract</legend>
<div id="acc">
<h3><a href="#contractinfo">Contract Info</a></h3>
<div>
stuff
</div>
<h3><a href="#locationandrs">Locations and Ratesheets</a></h3>
<div>
stuff
</div>
<h3><a href="#auditibleterms">Auditable Terms</a></h3>
<div>
stuff
</div>
<h3><a href="#contractdocs">Contract Docs</a></h3>
<div>
stuff
</div>
</div>
</fieldset>
答案 0 :(得分:3)
大约一年后第一次回到这段代码中,当我正在处理其他事情时,能够解决这个问题。
var substr = window.location.href.split('#');
window.location.href = substr[0] + "#locationandrs";
window.location.reload();
答案 1 :(得分:2)
您可以在返回值上将active选项设置为true吗?您需要点击链接中的“选项”,但这里是文档:
活动元素的选择器。组 为false,在开始时不显示任何内容。 需要折叠:是的。代码示例
用活动状态初始化手风琴 选项指定。
$( ".selector" ).accordion({ active: 2 });
获取或设置活动选项 初始化。
//getter var active = $( ".selector" ).accordion( "option", "active" ); //setter $( ".selector" ).accordion( "option", "active", 2 );
答案 2 :(得分:0)
在提交表单时发送隐藏参数,识别打开的面板。您将获得此参数并使用它在输出HTML代码期间为特定面板指定特殊ID。然后在js-script中使用init accordion:
$('#accordion').accordion({
...
,active: '#panel_selected'
...
});
$('#panel_selected').get(0).scrollIntoView(false); // scroll until panel is visible
这就是全部!