Как передать аргументы в виджет jQuery?

Это нубский вопрос.

Предположим, у меня есть jQuery диалог открывается при нажатии кнопки. Диалог реализован как jQuery виджет:

(функция ($) {

  $.widget("myApp.myDialog", {

     _create: fnction() {...} // создать диалог

     _init: fnction() {...} // открыть диалог    
  })

}(JQuery));

Я открываю этот диалог по нажатию кнопки следующим образом:

$ ('# myButton'). bind ('click', function () {$ (this).myDialog ();});

Все идет нормально. Я надеюсь, что это имеет смысл.

Теперь я хотел бы отключить эту кнопку, когда диалоговое окно открыто, и включить ее, когда диалоговое окно закрыто. Как передать кнопку в диалоговый виджет?

1 ответ

Так как вы хотите сделать dialog Вы, вероятно, хотите пройти в $.ui.dialog как второй параметр $.widget так что вы наследуете функциональность диалога.

Когда вы создаете экземпляр myDialog Вы можете включить / отключить кнопку там.

(function($) {
    $.widget('myApp.myDialog', $.ui.dialog, {
        
    });
    
    $('.dialog').myDialog({
        open: function() {
            $('#myButton').prop('disabled', true);
        },
        close: function() {
            $('#myButton').prop('disabled', false);
        }            
    });
}(jQuery));

Пример - http://jsfiddle.net/tj_vantoll/v4sYX/

Другие вопросы по тегам