我的twitter bootstrap警告框有一个非常奇怪的问题。这是我试图执行的样本
<script src="js/jquery.js"></script>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/bootstrap-dialog.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<link rel="stylesheet" href="css/bootstrap-dialog.css">
<title>Insert title here</title>
<script>
function callMe(){
test();
BootstrapDialog.alert('Bye');
}
function test(){
BootstrapDialog.alert('hello');
}
</script>
</head>
<body>
<input type="button" name="button" value="button" onclick="callMe()"/>
</body>
</html>
结果应该是:你好----&gt;再见
结果如下:再见----&gt;你好
如果我评论一个Bootstrap警告框,那么同样的结果(稀释框没有重叠点)。
function callMe(){
test();
}
function test(){
alert('inside test');
BootstrapDialog.alert('hello');
alert('outside test');
}
</script>
结果如下:内部测试---&gt;外部测试---&gt;你好 结果应该是:内部测试---&gt; hello ---&gt;外部测试
答案 0 :(得分:1)
我认为这种情况正在发生,因为调用是异步的。控件从test()
返回的时间超过BootstrapDialog.alert('Bye');
如果你把时间间隔设为1秒。喜欢:
setInterval(BootstrapDialog.alert('Bye'), 1000);
或使用回调方法
jQuery回调函数。
这是一个很好的机会开始使用&#34; jQuery Deferred&#34; 。
此stackoverflow链接sequencing function calls in javascript - are callbacks the only way? 可能有所帮助。
答案 1 :(得分:0)
这是因为hello
对话框落后于另一个
您首先打电话来创建hello
对话框,然后在第一个对话框的顶部创建bye
对话框,即第二个对话框覆盖第一个对话框。