私は非常に奇妙な振る舞いに遭遇しましたBootstrap Dialog 何らかの理由で、下記のfoo
機能でダイアログボックスが一度に表示されません。描画は、$.get(...
に達する瞬間まで遅れています。これがどうして起こるのでしょうか? Maximusのanwserに触発さブートストラップダイアログレンダリングポストポケット
function = foo()
{
$rows.each(function (i, row)
{
var $row = $(row);
if (something_is_wrong())
{
alert_error('Something is wrong', $form, '');
return;
}
// Some other code
});
// The Bootstrap modal dialog shows up when reaching the point below !!!
$.get('/sending_order_notification/' + legal_entity_own_id, function(response)
{
BootstrapDialog.show({ ...
// ...
});
}
function alert_error(message, $current_form, function_name)
{
if ($current_form != undefined)
$current_form.modal('hide');
BootstrapDialog.show(
{
type: BootstrapDialog.TYPE_DANGER,
title: 'Ошибка',
message: message,
draggable: true,
buttons: [{
label: 'OK',
action: function(dialogItself) {
dialogItself.close();
if (function_name != undefined)
$.post('/send_error_report/', function_name);
}
}]
});
}
UPDATE 、私は私のために働いていた以下の回避策を選びました。しかし、これはクリーンな解決策ではありません。なぜなら、ループが無意味になってもループを続ける必要があるからです。
function = foo()
{
var bad_condition_flg = false;
$rows.each(function (i, row)
{
var $row = $(row);
if (something_is_wrong())
{
bad_condition_flg = true;
}
// Some other code
});
if (bad_condition_flg);
{
alert_errr(...);
return;
}
}
どのようにその時点で表示されていることをご存知ですか?あなたはデバッガを使いますか? 'alert_error'が呼び出されていますか? –
はい、私はデバッガを使用しています。そして!!!最も驚くべきことに、fooは 'return'に到達すると停止しません! –
'title: 'Ошибка'、' - russian language :) –