close
не представляется опцией в jQuery UI Dialog . Похоже, вы намереваетесь стать частью опции buttons
. Что-то структурно больше похожее на это:
buttons: {
close: someFunction
}
В этот момент ключевым отличием здесь является function
. Вы не передаете функцию, вы немедленно вызываете селектор jQuery, чтобы прикрепить обработчик клика Внутри этого обработчика кликов вы ссылаетесь на нажатую кнопку в качестве диалогового окна. Как говорит ошибка, поскольку этот элемент кнопки никогда не инициализировался как диалог, его нельзя закрыть.
Вам не нужно вручную создавать обработчик кликов. Просто используйте функцию обработчика в опциях JQuery UI Dialog:
buttons: {
close: function () {
$(this).dialog('close');
}
}
<ч />
С другой стороны , если вам не нужна кнопка диалога «закрыть», но вы хотите использовать эту кнопку custom , то не инициализируйте его в диалоговых кнопках. В этом случае вы инициализируете обработчик щелчка вне инициализации диалогового окна пользовательского интерфейса jQuery и обращаетесь к диалогу (, а не - this
). Что-то вроде:
$("#dialogBox").dialog({
// your initialization options, without buttons
});
$("#closeBox").click(function() {
$("#dialogBox").dialog('close');
});
<ч />
Кажется, что вы смешиваете два подхода, вот и все.