Предупреждение BootStrap ведет себя странно
У меня очень странная проблема с окном предупреждения 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>
Результат должен быть: привет ----> Пока
Результат приходит как: пока ----> привет
Если я прокомментирую одно окно с предупреждением Bootstrap, то также получу тот же результат (Нет точки перекрытия окна дилога).
function callMe(){
test();
}
function test(){
alert('inside test');
BootstrapDialog.alert('hello');
alert('outside test');
}
</script>
Результат будет следующим: внутренний тест ---> внешний тест ---> привет Результат должен быть: внутренний тест ---> привет ---> внешний тест
2 ответа
Я думаю, что это происходит потому, что вызовы асинхронные. Время, необходимое контролю, чтобы вернуться из test()
больше чем BootstrapDialog.alert('Bye');
Если вы установите интервал времени, скажем, 1 сек. лайк:setInterval(BootstrapDialog.alert('Bye'), 1000);
Или используйте метод обратного вызоваjQuery Callback Functions.
Это отличный шанс начать использовать "jQuery Deferred".
Эта функция последовательного соединения в стеке вызывает поток вызовов в javascript - единственные ли обратные вызовы? может помочь.
Это потому что hello
Диалог позади другого.
Вы сначала позвонили, чтобы создать hello
диалоговое окно и после создания bye
диалоговое окно в верхней части первого, то есть второе диалоговое окно перезаписывается первым.