2015-09-21 9 views
1

Как мне получить доступ к кнопкам Dialog JQueryUI при создании и получить их размер? В качестве обходного пути я мог бы сделать это, когда он будет открыт.Доступ к кнопкам jQueryUI Dialog при создании

http://jsfiddle.net/1ueho4tq/

var $button1; 
var dialog = $('#dialog').dialog({ 
    autoOpen: false, 
    create: function (event, ui) { 
     var $button1 = $('#button1'); 
     console.log("$button1 create", $button1, $button1.outerHeight(), $button1.position().top); 
    }, 
    open: function (event, ui) { 
     if (!$button1) { 
      $button1 = $('#button1'); 
      console.log("$button1 open", $button1, $button1.outerHeight(), $button1.position().top); 
     } 
    }, 
    buttons: [{ 
     id: 'button1', 
     text: 'Upload', 
     click: function() { 
      console.log('button1'); 
     } 
    }, { 
     id: 'button2', 
     text: 'Save', 
     click: function() { 
      console.log('button2'); 
     } 
    }, { 
     text: 'Cancel', 
     click: function() { 
      $(this).dialog("close"); 
     } 
    }] 
}); 
$('#open').click(function() { 
    dialog.dialog('open'); 
}); 

<div id="dialog"></div> 
<button id="open">Open</button> 

ответ

1

Вы можете получить диалоговые кнопки JQuery UI с помощью buttons опции добытчика.

Код:

var buttons = $('#dialog').dialog('option', 'buttons'); 

Но если вам нужно, чтобы проверить их размеры необходимо использовать массив после открытия диалогового окна.

Код:

open: function (event, ui) { 
    $.each(buttons, function (i, e) { 
     console.log($('#'+e.id).outerHeight()) 
    }); 
}, 

Демо: http://jsfiddle.net/f4m6z9hc/

+0

Благодаря Ирвин. Значит, они не существуют до открытия диалога? – user1032531

+0

@ user1032531 нет, если вы проверите DOM, они уже в нем, это зависит от того, что вы хотите сделать –

+0

Тогда почему я не могу получить размер и положение, если они уже находятся в DOM? – user1032531

 Смежные вопросы

  • Нет связанных вопросов^_^