Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 向jQueryUI小部件添加新方法_Jquery Ui - Fatal编程技术网

Jquery ui 向jQueryUI小部件添加新方法

Jquery ui 向jQueryUI小部件添加新方法,jquery-ui,Jquery Ui,jQuery UI文档提供了一个示例,如下所示: $.widget("ui.dialog", $.ui.dialog, { open: function() { console.log("open"); return this._super(); } }); 这对我使用UI1.12.1是有效的,当对话框打开时,我会看到预期的日志条目 但是,使用相同的技术重新创建jQueryUI选项卡的removed.url()方法时不会抛出

jQuery UI文档提供了一个示例,如下所示:

$.widget("ui.dialog", $.ui.dialog,
{
     open: function()
     {
          console.log("open");
          return this._super();
     }
});
这对我使用UI1.12.1是有效的,当对话框打开时,我会看到预期的日志条目

但是,使用相同的技术重新创建jQueryUI选项卡的removed.url()方法时不会抛出错误“UncaughtTypeError:$(…)。url不是函数”。这是我的代码:

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

除了url()方法是创建的而不是扩展的之外,这里还有什么不同?有可能执行我正在尝试的操作吗?

有可能,但是我不确定日志后面的那一行,即
.data()
方法在这里似乎无效

也许你的意思是:

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

但是我不确定日志后面的那一行,也就是说,
.data()
方法在这里似乎无效

也许你的意思是:

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

正如我所说,我得到一个错误,$(…).url不是一个函数,所以我根本无法调用代码。在任何情况下,该数据行都在独立函数中工作。马克,你完全正确。独立函数之所以能够工作,是因为它具有不同的作用域,而且在新的插件上下文中,data()并不像您所说的那样存在。我看到的最初错误是由于错误地调用该方法引起的。我使用的是旧式的$(…).url(…)语法,需要是$(…).tabs('url',…)。正如我所说的,我得到一个错误,$(…).url不是一个函数,所以我根本无法调用代码。在任何情况下,该数据行都在独立函数中工作。马克,你完全正确。独立函数之所以能够工作,是因为它具有不同的作用域,而且在新的插件上下文中,data()并不像您所说的那样存在。我看到的最初错误是由于错误地调用该方法引起的。我使用的是旧式的$(…).url(…)语法,需要是$(…).tabs('url',…)。