Bootstrap 使用 ajax 调用创建的手风琴未正确显示
Bootstrap accordion not showing correctly when created with ajax call
我从 bootstrap 手动创建手风琴没问题。
但是在 ajax 调用中它没有正确呈现。
我的 ajax 电话:
function LoadReservation() {
$.ajax({
url: '@ecuriePath' + 'MesReservations',
type: 'GET',
headers: headers,
success: function (data) {
var j = 1;
$.each(data,
function (i, v) {
$('#accordion').append('<div class="panel panel-default">');
$('#accordion').append('<div class="panel-heading">');
$('#accordion').append('<h4 class="panel-title">');
$('#accordion').append('<a data-toggle="collapse" data-parent="#accordion" href="#collapse'+j+'">'+moment(v.heureDebut).format("DD-MM-YYYY")+' : '+v.typeDeCours+' - '+v.discipline+'</a>');
$('#accordion').append('</h4>');
$('#accordion').append('</div>');
$('#accordion').append('<div id="collapse'+j+'" class="panel-collapse collapse in">');
$('#accordion').append('<div class="panel-body">');
$('#accordion').append('test'+j);
$('#accordion').append('</div>');
$('#accordion').append('</div>');
$('#accordion').append('</div>');
j = j + 1;
});
},
error: function(error) {
alert('failed : ' + error);
}
});
}
HTML 和参考文献:
<link rel="stylesheet" href="~/Content/bootstrap.min.css">
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js">
</script>
<div class="container">
<div id="accordion"></div>
</div>
这是结果:
有人知道这是为什么吗?
直接在 html 中使用相同的代码效果很好,并给出以下结果:
我找到它不起作用的原因了。
Jquery .append() 函数附加您的 html 但也会自动关闭标签。
如果您附加以下内容:
$('#accordion').append('<div class="panel panel-default">');
它会在它的末尾添加一个</div>
。
我把所有东西都放在一个数组中并附加了我的数组。这成功了!
我从 bootstrap 手动创建手风琴没问题。
但是在 ajax 调用中它没有正确呈现。
我的 ajax 电话:
function LoadReservation() {
$.ajax({
url: '@ecuriePath' + 'MesReservations',
type: 'GET',
headers: headers,
success: function (data) {
var j = 1;
$.each(data,
function (i, v) {
$('#accordion').append('<div class="panel panel-default">');
$('#accordion').append('<div class="panel-heading">');
$('#accordion').append('<h4 class="panel-title">');
$('#accordion').append('<a data-toggle="collapse" data-parent="#accordion" href="#collapse'+j+'">'+moment(v.heureDebut).format("DD-MM-YYYY")+' : '+v.typeDeCours+' - '+v.discipline+'</a>');
$('#accordion').append('</h4>');
$('#accordion').append('</div>');
$('#accordion').append('<div id="collapse'+j+'" class="panel-collapse collapse in">');
$('#accordion').append('<div class="panel-body">');
$('#accordion').append('test'+j);
$('#accordion').append('</div>');
$('#accordion').append('</div>');
$('#accordion').append('</div>');
j = j + 1;
});
},
error: function(error) {
alert('failed : ' + error);
}
});
}
HTML 和参考文献:
<link rel="stylesheet" href="~/Content/bootstrap.min.css">
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js">
</script>
<div class="container">
<div id="accordion"></div>
</div>
这是结果:
有人知道这是为什么吗? 直接在 html 中使用相同的代码效果很好,并给出以下结果:
我找到它不起作用的原因了。
Jquery .append() 函数附加您的 html 但也会自动关闭标签。
如果您附加以下内容:
$('#accordion').append('<div class="panel panel-default">');
它会在它的末尾添加一个</div>
。
我把所有东西都放在一个数组中并附加了我的数组。这成功了!