Модальный диалог не работает в Chrome / Explorer, но работает в Firefox - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть следующая модальная диалоговая функция щелчка

 $("#foo").click(function(){$("#bar").dialog({

    width: 400,
    modal: true,
    resizable: false,
    buttons:{
            "Save": function(){
                        $.post('remote_foo.php', $('#waka').serialize(), function(data){
                    $('#list').html(data);})
                    $(this).dialog("close");
                    $('.dial').val('');
                    $('.url').val('http://');

                    },


            "cancel": function(){
                $(this).dialog("close");
            }
        }//end of buttons
    }).('open');//end of jquery dialog
})// end of click function

В Firefox он работает нормально, но, честно говоря, я даже не думаю, что моя функция щелчка настроена правильно.

1) Это правильный способ открыть диалог одним щелчком мыши. 2) есть ли конкретная причина, по которой это не будет работать в Chrome / Internet Explorer? (Это пользовательский интерфейс jquery)

Ответы [ 2 ]

1 голос
/ 30 ноября 2011

Вы пытались удалить. ('Open') из конца вашего диалогового вызова?Это не должно требоваться (не уверен, что это даже допустимый вызов) для отображения диалогового окна и может быть причиной ваших кросс-браузерных проблем.

1 голос
/ 30 ноября 2011

Нет, это не то, как вы должны открыть диалоговое окно. Взгляните на это вместо:

$(function () {

$("#foo").click(function(){
  $("#bar").dialog('open');
});


$("#bar").dialog({
    autoOpen: false,
    width: 400,
    modal: true,
    resizable: false,
    buttons:{
            "Save": function(){
                        $.post('remote_foo.php', $('#waka').serialize(), function(data){
                    $('#list').html(data);})
                    $(this).dialog("close");
                    $('.dial').val('');
                    $('.url').val('http://');

                    },


            "cancel": function(){
                $(this).dialog("close");
            }
        }//end of buttons
    }); // end of dialogInit


})// end of document ready

По сути, вы переинициализировали свой диалог с каждым кликом. Вместо этого инициализируйте его один раз в готовом документе, а затем откройте / закройте его с событиями щелчка.

Вызов установки диалога для объекта DOM необходимо вызывать только один раз, чтобы подготовить этот объект к различным задачам, связанным с пользовательским интерфейсом jQuery. После подготовки вы можете просто использовать .dialog («открыть») и .dialog («закрыть»), и конфигурация для него будет сохраняться каждый раз.

...