jQuery Диалоговое окно UI - не открывается, будучи закрытым

Предупреждение: Деление на ноль

Предупреждающее сообщение «Подразделение на ноль» является одним из наиболее часто задаваемых вопросов среди новых разработчиков PHP. Эта ошибка не вызовет исключения, поэтому некоторые разработчики будут иногда подавлять предупреждение, добавляя оператор подавления ошибок @ перед выражением. Например:

$value = @(2 / 0);

Но, как и при любом предупреждении, наилучшим подходом было бы отслеживать причину предупреждения и разрешать его. Причина предупреждения будет происходить из любого экземпляра, где вы пытаетесь разделить на 0, переменную, равную 0, или переменную, которая не была назначена (поскольку NULL == 0), потому что результат будет «неопределенным».

Чтобы исправить это предупреждение, вы должны переписать свое выражение, чтобы проверить, что значение не равно 0, если оно есть, сделать что-то еще. Если значение равно нулю, вы не должны делиться или изменять значение на 1, а затем делить так, что деление приводит к эквиваленту того, что он разделен только дополнительной переменной.

if ( $var1 == 0 ) { // check if var1 equals zero
    $var1 = 1; // var1 equaled zero so change var1 to equal one instead
    $var3 = ($var2 / $var1); // divide var1/var2 ie. 1/1
} else {
    $var3 = ($var2 / $var1); // if var1 does not equal zero, divide
}

Вопросы, относящиеся:

79
задан Rahul Gupta 28 December 2017 в 06:55
поделиться

8 ответов

Привет Парни мне удалось решить его.

я использовал, уничтожают вместо этого близкую функцию (Она не имеет никакого смысла), но она работала!

$(document).ready(function() {
$('#showTerms').click(function()
{
    $('#terms').css('display','inline');
    $('#terms').dialog({resizable: false,
        modal: true,
        width: 400,
        height: 450,
        overlay: { backgroundColor: "#000", opacity: 0.5 },
        buttons:{ "Close": function() { $(this).dialog('**destroy**'); } },
        close: function(ev, ui) { $(this).close(); },
    });         
});   
$('#form1 input#calendarTEST').datepicker({ dateFormat: 'MM d, yy' });
});
14
ответ дан Andreas Grech 24 November 2019 в 10:12
поделиться

на последней строке не используйте $(this).remove() использование $(this).hide() вместо этого.

РЕДАКТИРОВАНИЕ: Для разъяснения на близком событии щелчка, Вы удаляете #terms отделение от DOM, который является почему не возвращение. Просто необходимо скрыть его вместо этого.

12
ответ дан Darko Z 24 November 2019 в 10:12
поделиться

Вы действительно должны использовать диалоговое окно $ ("# term"). ({AutoOpen: false }); чтобы инициализировать его. Затем вы можете использовать $ ('# term'). Dialog ('open'); , чтобы открыть диалоговое окно, и $ ('# term'). Dialog ('close'); , чтобы закрыть его.

110
ответ дан Shane Fulmer 24 November 2019 в 10:12
поделиться
$(this).dialog('destroy');

работает!

2
ответ дан Benedikt 24 November 2019 в 10:12
поделиться

Я считаю, что вы можете инициализировать диалог только один раз. В приведенном выше примере выполняется попытка инициализировать диалоговое окно при каждом нажатии #terms. Это вызовет проблемы. Вместо этого инициализация должна происходить вне события щелчка. Ваш пример, вероятно, должен выглядеть примерно так:

$(document).ready(function() {
    // dialog init
    $('#terms').dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width: 400,
        height: 450,
        overlay: { backgroundColor: "#000", opacity: 0.5 },
        buttons: { "Close": function() { $(this).dialog('close'); } },
        close: function(ev, ui) { $(this).close(); }
    });
    // click event
    $('#showTerms').click(function(){
        $('#terms').dialog('open').css('display','inline');      
    });
    // date picker
    $('#form1 input#calendarTEST').datepicker({ dateFormat: 'MM d, yy' });
});

Я думаю, что как только вы это проясните, он должен исправить описанную вами проблему «открытия по ссылке».

9
ответ дан 24 November 2019 в 10:12
поделиться

Это

Vector2f operator-(const Vector2f& in) {
   return Vector2f(-in.x,-in.y);
}

может быть в классе или снаружи. Мой образец находится в объеме пространства имен.

-121--899140-

.Close () - это Mor General и может использоваться в отношении более объектов. .Dialog («Закрыть») можно использовать только с диалоговыми окнами

1
ответ дан 24 November 2019 в 10:12
поделиться

В документации jQuery есть ссылка на эту статью ' Базовое использование диалогового окна пользовательского интерфейса jQuery ' {{1 }}, который объясняет эту ситуацию и способы ее разрешения.

0
ответ дан 24 November 2019 в 10:12
поделиться

Для меня этот подход работает:

Диалог можно закрыть, нажав на X на диалоге или нажав 'Bewaren'. Я добавляю (произвольный) id, потому что мне нужно быть уверенным, что каждый бит html, добавленный в dom, будет потом удален.

$('<div id="dossier_edit_form_tmp_id">').html(data.form)
.data('dossier_id',dossier_id)
.dialog({
        title: 'Opdracht wijzigen',
        show: 'clip',
        hide: 'clip',
        minWidth: 520,
        width: 520,
        modal: true,
        buttons: { 'Bewaren': dossier_edit_form_opslaan },
        close: function(event, ui){ 
                                  $(this).dialog('destroy'); 
                                  $('#dossier_edit_form_tmp_id').remove();
               }
});
3
ответ дан 24 November 2019 в 10:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: