Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Resize jquery dialog (https://javascript.ru/forum/jquery/45864-resize-jquery-dialog.html)

katamason 18.03.2014 21:29

Resize jquery dialog
 
Добрый день. Пытался вызвать функцию в момент открытия окна . Получилось прицепить на resize, но в open не отрабатывает. Подскажите почему ?
var changeDialog =  function() {
        var w =  $('.ui-dialog').outerWidth();

        var marl = w / 2;


        var wiw =  $( window ).innerWidth();

        if ( wiw  >= 600) {

            $('.ui-dialog').css({'left':'50%', 'width': '570px',  'margin-left':-marl+ 'px'});

        } else {
            $('.ui-dialog').css({'margin-left':'0px', 'left':'0px', 'width':'auto', 'min-width':'0'});

        }

    }


  $(window).on('resize',function() {

        changeDialog();
    });


 $( "#dialog-load" ).dialog({
		autoOpen: false,
		draggable: false,
        width:'auto',
        open:function(event, ui) {

            changeDialog();

            
        },
		
	});

рони 18.03.2014 22:28

katamason,
почему вы решили что несрабатывает? и зачем бессмысленно вычислять то что вам известно заранее
Цитата:

Сообщение от katamason
var marl = w / 2;


katamason 18.03.2014 22:53

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

рони 18.03.2014 22:57

katamason,
:) 'margin-left': '-285px' думаю и сами сосчитали

katamason 18.03.2014 23:12

Цитата:

Сообщение от рони (Сообщение 303119)
katamason,
:) 'margin-left': '-285px' думаю и сами сосчитали

Ведь это не суть.. Подскажите, есть ещё способы хоть как то отследить открытие диалога ?

рони 18.03.2014 23:33

katamason,
перед открытием можно присваивать необходимый класс а отследить вы веть чемто его открываите ставьте перед открытием что вам необходимо
вариант
$( "#opener" ).click(function(){
  var wiw =  $( window ).innerWidth();
  if ( wiw  >= 600) $("#dialog").dialog( "option", "dialogClass", "new_class" );
  $( "#dialog" ).dialog( "open" );
  return false;
});


Часовой пояс GMT +3, время: 13:05.