BootStrap警报表现得很奇怪

时间:2015-01-20 18:39:14

标签: jquery twitter-bootstrap bootstrap-dialog

我的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;外部测试

2 个答案:

答案 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对话框,即第二个对话框覆盖第一个对话框。