Нет необходимости возиться с классами на кнопках, и это, вероятно, не очень хорошая идея.Кнопки в диалоговом окне jQuery-UI - это кнопки jQuery-UI , и они поддерживают методы disable
и enable
в обычном стиле jQuery-UI:
$button.button('enable'); // Enable the button
$button.button('disable'); // Disable the button
Прежде всего, замените это:
jQuery(".ui-dialog-buttonpane button:contains('Issue')").attr("disabled", true).addClass("ui-state-disabled");
На это:
jQuery('.ui-dialog button:nth-child(1)').button('disable');
Затем в обработчике редактирования сделайте следующее:
jQuery('.ui-dialog button:nth-child(1)').button('enable');
Чтобы активировать кнопку.
Что касается селекторов, главное диалоговое окно <div>
имеет класс ui-dialog
, поэтому мы начинаем с .ui-dialog
.Затем нам нужны кнопки внутри диалога, поэтому мы ищем <button>
элементов;это дает нам .ui-dialog button
.Кнопки в диалоговом окне перечислены слева направо в том же порядке, что и в опции buttons
диалогового окна.Есть несколько способов получить первую кнопку:
Я пошел с :nth-child
, который является селектором CSS3:
Псевдо- :nth-child(an+b)
нотация класса представляет элемент, который имеет an+b-1
siblings перед в дереве документа для любого положительного целого или нулевого значения n
и имеет родительский элемент.
Итак button:nth-child(1)
- первая кнопка.Я подумал, что если бы вы делали что-то с одной кнопкой, вы, вероятно, в конечном итоге делали бы что-то с другими кнопками, так что, например, вы могли бы сделать .ui-dialog button:nth-child(2)
, чтобы получить кнопку «Редактировать», и это хорошо совпало бы с селекторомиспользуется для кнопки «Issue».