Документов JQuery UI получение example of extending an existing UI widget method, как это:Добавить новый метод виджет JQuery UI
$.widget("ui.dialog", $.ui.dialog,
{
open: function()
{
console.log("open");
return this._super();
}
});
Это работает для меня, используя интерфейс 1.12.1, я вижу ожидаемую запись в журнале, когда диалог открыт.
Однако, используя ту же технику для воссоздания удаленного метода .url() для вкладок пользовательского интерфейса jQuery, выдается ошибка «Неподключить TypeError: $ (...). Url не является функцией». Это мой код:
$.widget("ui.tabs", $.ui.tabs,
{
url: function (index, url)
{
console.log("url");
$(this.data("uiTabs").anchors[index]).attr("href", url);
return this;
}
});
Какая разница здесь, кроме того, что метод URL() создаваемом, а не продлен? Можно ли делать то, что я пытаюсь?
Как я уже сказал, я получаю сообщение об ошибке, что $ (...) URL не является функцией, поэтому я не могу назвать код на всех. В любом случае эта линия данных работает в автономной функции. – enigment
Ты был точно прав Марка. Отдельная функция работала, потому что она имеет разные области охвата, а в новом контексте плагина data() не существует, как вы сказали. Первоначальная ошибка, которую я видел, была вызвана неправильным вызовом метода. Я использовал старый синтаксис $ (...). Url (...), должен быть $ (...). Tabs ('url', ...). – enigment