我正在使用jquery accordion,它在初始页面加载时工作得很好,但随后我使用了一些ajax命令来重新加载页面的一部分,实际上是页面的内部。
当发生这种情况时,accordion就被破坏了,因为我所做的重载只是替换了几乎整个body字段的innerHTML。
加载accordion的脚本也包含在替换的HTML中,但这显然没有帮助。
如何在替换整个页面的innerHTML后保留(或重新调用)折叠效果?
<div class="art-Post-inner" id="ajaxWrapper">
<div id="accordion">
<h3><a href="#">Skärm 1</a></h3>
<div>
my accordion content
</div>
</div>
<script>
$(document).ready(function() {
$( '#accordion' ).accordion({
collapsible: true, active: false, autoHeight: false
});
});
</script> 这是一种通过用id=ajaxWrapper设置div的innerHTML而被完全取代的艺术。
我相信你看到了问题所在。
发布于 2012-02-05 09:50:52
将jquery折叠函数放入.ajax请求的成功回调中:
示例:
var accordionOpts = {
collapsible: "true",
active: "false",
autoHeight: "false"
};
$('#accordion').accordion(accordionOpts);
$("#replaceContent").click(function() {
$.ajax({
type: 'POST',
cache: false,
data: {
html: "<div id='accordion'><h3><a href='#'>Skärm 2</a></h3><div>my accordion content</div></div>"
},
url: '/echo/html/',
success: function(data) {
$(".art-Post-inner").html(data);
$('#accordion').accordion(accordionOpts);
}
});
});小提琴:http://jsfiddle.net/6Scgc/3/
发布于 2015-03-28 21:11:11
使用$( ".selector“).accordion(”刷新“);
https://stackoverflow.com/questions/9145313
复制相似问题