将方法插入jQuery插件

Insert Method into jQuery Plugin

本文关键字:插件 jQuery 插入 方法      更新时间:2023-09-26

我想在jQuery插件中添加一个refresh函数,这样我就可以进行

$(selector).tooltipster("refresh")

我一直在试着用这个https://stackoverflow.com/a/4414356/123415但没有成功。这就是我正在尝试的:

(function($) {
    $.extend(true, $[ "fn" ][ "tooltipster" ].prototype, {
        refresh: function() {
          this._update(this.Content);
        },
    });
})(jQuery);

作为参考,插件的代码在内部声明_update

(function ($, window, document) {
  Plugin.prototype = {
    _update: function() {
      /* update code */
    }
  }
})( jQuery, window, document );

我正在尝试扩展tooltipster,我想我已经包含了上面所有必要的代码。

问题似乎是插件的方法都在Plugin.prototype中,我似乎无法访问。目前,我只是在控制台中得到"无法设置未定义的属性'refresh'"。

更新如果我在控制台中运行$.fn.tooltipster.prototype,我会得到

- $.fn.(anonymous function) {refresh: function}
  + constructor: function () {
  + refresh: function () {
  + __proto__: Object

这意味着我在tooltipster上的某个地方添加了刷新,但不是它应该在的地方。

你能不直接在原型上设置它吗?

$.someplugin.someMethod = function(){}