JQuery引导模式在get调用后未关闭
我有一个JQuery,它从java后端获取数据列表。这很好用。我试图做的是在后端bean运行时显示加载模式,在加载完成并返回数据时隐藏加载模式 我尝试了('toggle'),('hide').close click().done().fail().always(),如下所示,但似乎没有任何效果 当我单击按钮时,它会显示模式,我可以看到数据被加载到html页面上的选择列表中,但在获取完成后,加载模式不会关闭JQuery引导模式在get调用后未关闭,jquery,bootstrap-4,bootstrap-modal,Jquery,Bootstrap 4,Bootstrap Modal,我有一个JQuery,它从java后端获取数据列表。这很好用。我试图做的是在后端bean运行时显示加载模式,在加载完成并返回数据时隐藏加载模式 我尝试了('toggle'),('hide').close click().done().fail().always(),如下所示,但似乎没有任何效果 当我单击按钮时,它会显示模式,我可以看到数据被加载到html页面上的选择列表中,但在获取完成后,加载模式不会关闭 <div class="modal fade" id="loadingModal"
<div class="modal fade" id="loadingModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header"><h4>Loading....</h4></div>
<div class="modal-body">
<div class="spinner-grow text-primary" role="status">
<span class="sr-only">Loading...</span>
</div>
</div>
</div>
</div>
</div>
<button type="button" class="btn btn-primary btn-sm" onclick="getContent()">Get Content</button>
<select class="form-control form-control-sm" id="primaryList"></select>
<script type="text/javascript">
function getContent() {
$('#loadingModal').modal('show');
$.get("/admin/getPrimaryList/", function(data) {
if(data.length == 0)
{
$('#loadingModal').modal('hide');
return false;
}
data.forEach(function(item, i) {
var option = "<option value='" + item + "'>" + item + "</option>";
$("#primaryList").append(option);
});
}).done(function() {
$("#loadingModal").modal('hide');
}).fail(function() {
$("#loadingModal").modal('hide');
}).always(function() {
$("#loadingModal").modal('hide');
});
$("#loadingModal").modal('hide');
};
</script>
加载。。。。
加载。。。
得到满足
函数getContent(){
$('#loadingmodel').model('show');
$.get(“/admin/getPrimaryList/”,函数(数据){
如果(data.length==0)
{
$('#loadingModal').modal('hide');
返回false;
}
data.forEach(功能(第i项){
var option=“”+项目+”;
$(“#primaryList”)。追加(可选);
});
}).done(函数(){
$(“#加载模式”).model('hide');
}).fail(函数(){
$(“#加载模式”).model('hide');
}).always(函数(){
$(“#加载模式”).model('hide');
});
$(“#加载模式”).model('hide');
};
谢谢 对我来说很好。这是我的小提琴: 我的小提琴和您的示例之间唯一的区别是我使用了
jQuery
来连接click事件。请检查您的代码在运行时是否抛出任何javascript
错误
将隐藏模式调用放置在成功回调的末尾
$.get('URL', function(data) {
...
$('#loadingModal').modal('hide');
});
或者在done
回调函数中工作
$.get('URL', function(data) {
...
}).done(function() {
$('#loadingModal').modal('hide');
});
我找不到任何ID为
loadingModal
的元素,也找不到任何类为close
的元素。很抱歉,我现在更新了问题以显示我是如何尝试的。以前的代码是另一种尝试,也不起作用。请尝试在done、fail、always
调用中添加console.log(“test”)
,并查看是否可以在控制台中看到消息。我已将console.log(“test 1”)放在done中,将console.log(“test 2”)放在fail中,将console.log(“test 3”)放在always中。测试1和测试3得到打印,但模态保持打开。我几乎有这样的感觉,代码运行得太快了,当模式“显示”时,“隐藏”已经运行了,因此保持打开状态。不确定这是否可行。谢谢,但我没有任何乐趣。我认为对backing data.get的调用需要很长的时间,然后JQuery没有跟上,或者执行得太快。不确定是什么,但我没有错误,模式也没有关闭。谢谢,我在我的网站上使用了SBAdmin2布局,它附带的css或js文件一定导致了这个问题。我在模板之外尝试了你的解决方案,它100%有效。