0

Twitterのブートストラップアラートボックスに非常に奇妙な問題があります。これが私が実行しようとしていたサンプルです

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

結果は次のようになります: こんにちは ----> さようなら

次のような結果が返されます: Bye ----> hello

1 つの Bootstrap アラート ボックスにコメントすると、同じ結果が得られます (ダイログ ボックスの重複ポイントはありません)。

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

結果は次のようになります: inside test--->outside test--->hello 結果は次のようになります: inside test--->hello--->outside test

4

2 に答える 2

1

呼び出しが非同期であるため、これが発生していると思います。コントロールが戻るのにかかる時間test()は、BootstrapDialog.alert('Bye');

たとえば1秒の時間間隔を置くと。like: setInterval(BootstrapDialog.alert('Bye'), 1000);または、コールバック メソッド jQuery Callback Functionsを使用します。

「jQuery Deferred」を使い始める絶好のチャンスです。

このstackoverflowリンクシーケンス関数はjavascriptで呼び出します - コールバックが唯一の方法ですか? 役立つかもしれません。

于 2015-01-21T10:35:10.477 に答える
0

helloダイアログが他のダイアログの背後にあるためです。
最初にダイアログを作成するための呼び出しを行い、最初helloのダイアログの上にダイアログを作成した後bye、つまり、2 番目のダイアログが最初のダイアログを上書きしました。

于 2015-01-20T19:01:05.407 に答える