我在每个部分内部都有一个手风琴(一次只显示一个部分)。所有手风琴都有不同的ID,没有一个正在工作。
$("#accordion1").accordion({
header: "h4", active: false, collapsible: true
});
$("#accordion2").accordion({
header: "h4", active: false, collapsible: true
});
答案 0 :(得分:0)
当您的内容通过AJAX加载时,您应确保执行JavaScript。
建议将您的函数包装在着名的$(document).ready()
函数中:
$(function(){
$('#accordion1').accordion({});
});
$(function(){
$('#accordion2').accordion({});
});
答案 1 :(得分:0)
根据你的描述,我猜你正在做这样的事情:
$("#accordion1").accordion({
header: "h4", active: false, collapsible: true
});
$("#accordion2").accordion({
header: "h4", active: false, collapsible: true
});
// And later on...
$('#section').load('/gimme/accordion1');
您从/gimme/accordion1
加载的内容包含#accordion1
。这不起作用,因为$('#accordion1')
在调用DOM时会查看DOM,并且找不到#accordion1
来绑定任何东西;稍后,当您将#accordion1
加载到DOM中时,它不会绑定一个手风琴,因为$('#accordion1').accordion(/*...*/)
调用是在#accordion1
之前完成的。
当手风琴的HTML在DOM中时,你必须连接手风琴小部件。无论你用什么函数加载HTML都应该有一个回调函数,当加载HTML时调用它,这样你就可以使用它来连接你的小部件;例如,如果您使用load
:
$('#section').load('/gimme/accordion1', function() {
$("#accordion1").accordion({
header: "h4", active: false, collapsible: true
});
});