JQuery диалог IE9 содержимое не отображается с использованием HTML - PullRequest
0 голосов
/ 25 марта 2012

У меня нет маленького веб-приложения для клиента.Я протестировал его в Firefox, Chrome, IE7, IE8 и IE9.

Теперь я не могу заставить его выйти из строя.Он работает в каждом браузере / версии, которую я тестировал.Я не уверен, с какой сборкой сидит мой клиент, но он сказал, что это IE9.

Код такой:

function noticeBox(type, html, title) {
switch(type) {
    case 1:
    $('#notice_box').dialog({
        title: title,
        width: 400,
        modal: true,
        position: 'center',
        buttons: {
            'Ok': function() {
                $(this).dialog('close');
            }
        }
    });     
    break;
    case 2:
    $('#notice_box').dialog({
        title: title,
        width: 800,
        modal: true,
        position: 'center',
        buttons: {
            'Bekræft og bestil': function() {
                $('#form_products').submit();
            },
            'Annuller': function() {
                $(this).dialog('close');
            }
        }
    });     
    break;
    case 3:
    $('#notice_box').dialog({
        title: title,
        width: 400,
        modal: true,
        position: 'center',
        buttons: {
            'Luk': function() {
                $(this).dialog('close');
            }
        }   
    });
    break;
}
alert(html);
$('#notice_box').html(html);
$('#notice_box').dialog('open'); }

Не очень общая функция, но это то, что в данный момент не работает,Он говорит, что когда всплывающее окно диалога, в диалоге нет содержимого.Он может видеть кнопки, но, похоже, в диалоге нет html.

Есть идеи?

ОБНОВЛЕНИЕ: Кстати, он может активировать несколько диалогов, и результат одинаков во всехих.Диалоги без какого-либо содержимого.

ОБНОВЛЕНИЕ2: Пример использования этой функции:Когда клиент заказывает некоторые продукты:

function order() {
var procuct_str = '';
var found_order = false;
$.each($('.order_input'), function(){
    var product_id = $(this).attr('id').split('-');
    if(parseInt($(this).val()) > 0) {
        found_order = true;
        procuct_str = procuct_str+'<div class="float_left"><span class="bread_text">'+$('#description-'+product_id[1]).text()+'</span></div><div class="float_right"><span class="bread_text">'+$(this).val()+'</span></div><div class="clear"></div>';
    }
}); 

if(found_order == true) {
    procuct_str = '<div class="float_left"><b>Beskrivelse</b></div><div class="float_right"><b>Antal kasser</b></div><div class="clear"></div>'+procuct_str;

    noticeBox(2, procuct_str, 'Bekræftelse');
    var found_order = false;
} }

Ответы [ 2 ]

0 голосов
/ 25 марта 2012

У меня отлично работает.

Я использовал вашу функцию так:

noticeBox(1, "<p>Hello</p>", "Test");

Что ваш клиент предоставляет для html-аргумента? Некоторый html мог возможно испортить это. Или просто ваш клиент пропустил это, что объясняет, почему ничего не отображается.

0 голосов
/ 25 марта 2012

Ваша переменная html должна быть доступна в рамках функции, если вы не объявили ее где-либо еще. Из предоставленного вами кода html является аргументом функции, а вне функции он всегда будет неопределенным.

...