内容加载后如何调整jQuery手风琴的大小?

时间:2014-07-21 15:44:12

标签: javascript jquery-ui

我有一个jQuery UI手风琴,最终会包含几个 形式。为了防止我的HTML文件变得难以理解,我想要 将每个表单放入一个单独的文件并加载它们。从另一个 Stack Overflow问题/答案我得到了这个,效果很好:

...
<head>
  ...
  <script>
    $(function(){
      $("#form1").load("form1.html");
      $("#form2").load("form2.html");
      $("#form3").load("form3.html");
    });
  </script>
  ...
</head>

<body>
...
<div id="accordion">
  <h3>Form 1</h3><div id="form1"></div>
  <h3>Form 2</h3><div id="form2"></div>
  <h3>Form 3</h3><div id="form3"></div>
</div>
...
</body>

不幸的是,手风琴的大小似乎是在之前计算出来的 加载了各种formN.html文件。如何强制它重新计算 加载这些文件后手风琴的大小?

1 个答案:

答案 0 :(得分:1)

您可以使用refresh方法。由于你有3个单独的ajax请求,我会做类似的事情:

var f1=$("#form1").load("form1.html");
var f2=$("#form2").load("form2.html");
var f3=$("#form3").load("form3.html");

$.when(f1,f2,f3).then(function(){
   /* all forms loaded now we can refresh accordion */
   $('#accordion').accordion('refresh');
});

accordion refresh() docs