所以我有div
我在这里制作手风琴:
<div id="accordion">
<h3><a href="#">Process Details</a></h3>
<div>
<span style="display:none;" id="dialogProcessId"></span>
<b>Process:</b> <span id="dialogProcess"></span><br />
<b>Run Time:</b> <span id="dialogRunTime"></span><br />
<b>Running:</b> <span id="dialogRunning"></span><br />
<b>Percent Completed:</b> <span id="dialogPercent"></span><br />
<b>Status:</b> <span id="dialogStatus"></span><br />
<b>Start Time:</b> <span id="dialogStart"></span><br />
<b>Finish Time:</b> <span id="dialogFinish"></span><br />
<b>Errors:</b> <span id="dialogErrors"></span><br />
<b>Messages:</b> <span id="dialogMessages"></span><br />
<b>Parameters:</b> <span id="dialogParameters"></span><br />
<b>Dependencies:</b> <span id="dialogDependencies"></span>
</div>
<h3><a href="#">Edit Parameters</a></h3>
<div>
<table id="paramsTable">
<tr>
<th style="display:none;"></th>
<th>Name</th>
<th>Value <span id="editParamValues" style="color:Blue; cursor:pointer; font-size:smaller;">Edit</span></th>
<th>Type</th>
</tr>
</table>
</div>
<h3><a href="#">View Dependencies</a></h3>
<div>
<table id="dependenciesTable">
<tr>
<th>Run ID</th>
<th>Process Name</th>
</tr>
</table>
</div>
<h3><a href="#">View Messages</a></h3>
<div style="overflow:scroll;">
<table id="messagesTable">
<tr>
<th>Time Stamp</th>
<th>Message</th>
<th>Message Type</th>
<th>Exception</th>
<th>Inner Exception</th>
<th>Email</th>
</tr>
</table>
</div>
</div>
我把它变成了一个像这样的手风琴:
$("#accordion").accordion();
然而,这个手风琴div
在另一个div
内,变成了一个JQuery UI对话框,如下所示:
<div id="detailsDialog">
<div id="accordion">
$("#detailsDialog").dialog({
autoOpen: false,
title: 'Details',
height: 550,
width: 800,
modal: true,
buttons: {
"Clear History": function () {
clearHistory($('#dialogProcessId').text());
},
"Close": function () {
$(this).dialog("close");
}
}
});
然后我用我的方法在我的应用程序中打开对话框:
function openDialog(id) {
//$("#accordion").accordion("option", "active", 0);
refreshDialog(id);
$("#detailsDialog").dialog("open");
$('#accordion').mask('Loading...');
}
方法refreshDialog
只是进行AJAX调用并填写手风琴div
中的所有不同span
,text
和div
值,然后打开对话框。
我尝试在这个openDialog()
方法中设置手风琴的索引,但是当我这样做时,它会使它全部变小,就像半开一样,看起来很奇怪,当我尝试切换到另一个手风琴指数它们都非常小而且很重要。我把这行代码放在openDialog
:
$( "#accordion" ).accordion( "option", "active", 1 );
我做错了吗?
答案 0 :(得分:1)
我找到了解决方案。我不得不每次都在openDialog
摧毁并重新制作手风琴,否则它会在另一支手风琴中重新制作手风琴。
基本上就像这样简单的事情:
$("#accordion").accordion("destroy");
$("#accordion").accordion();
答案 1 :(得分:0)
我认为您需要在打开对话框后调用accordion
。看看这个jsfiddle并告诉我这是否能解决您的问题或帮助。如果我误解,请告诉我。