0

我对 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>

结果应该是:你好---->再见

结果如下:再见---->你好

如果我评论一个引导警报框,那么结果也相同(没有对话框重叠点)。

function callMe(){
    test();
}
    function test(){
    alert('inside test');
          BootstrapDialog.alert('hello');
          alert('outside test');
    }
</script>

结果为:内部测试--->外部测试--->你好结果应该是:内部测试--->你好--->外部测试

4

2 回答 2

1

我认为这是因为调用是异步的。控件返回所用的时间test()大于BootstrapDialog.alert('Bye');

如果你把时间间隔设置为 1 秒。喜欢: setInterval(BootstrapDialog.alert('Bye'), 1000);或者使用回调方法 jQuery Callback Functions

这是开始使用“jQuery Deferred”的好机会。

javascript中的这个stackoverflow链接排序函数调用-回调是唯一的方法吗? 可能有帮助。

于 2015-01-21T10:35:10.477 回答
0

这是因为hello对话在另一个之后。
您首先调用了创建hello对话框,然后在第bye一个对话框的顶部创建了对话框,即第二个对话框覆盖了第一个对话框。

于 2015-01-20T19:01:05.407 回答