向jQuery UI小部件添加新方法

时间:2017-02-03 12:27:58

标签: jquery-ui

jQuery UI文档提供example of extending an existing UI widget method,如下所示:

$.widget("ui.dialog", $.ui.dialog,
{
     open: function()
     {
          console.log("open");
          return this._super();
     }
});

使用UI 1.12.1对我有用,我在打开对话框时看到了预期的日志条目。

但是,使用相同的技术重新创建jQuery UI Tabs的删除.url()方法不会,抛出错误“Uncaught 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()方法是创建而不是扩展的事实之外,这里有什么区别?是否有可能做我正在尝试的事情?

1 个答案:

答案 0 :(得分:0)

但是我可能不确定日志之后的那条线,即.data()方法在这里似乎无效?

也许你的意思是:

$.widget("ui.tabs", $.ui.tabs, {
  url: function(index, url) {
    $(this.anchors[index]).attr("href", url);
  }
});