gpt4 book ai didi

javascript - 如何调用对象内部的特定函数?

转载 作者:行者123 更新时间:2023-11-28 17:22:32 26 4
gpt4 key购买 nike

这是我的 javascript 的一部分,取自 jquery 插件。这个插件让我可以制作一个 div 小部件,其中加载了远程 html 内容,并创建了一个带有刷新按钮的工具标题,可以重新加载远程内容。我需要调用 _loadAjaxFile 函数来从该插件外部的其他函数(例如按钮)重新加载内容,但我无法理解这是否可能以及如何实现。

(function ($, window, document, undefined) {

function Plugin(element, options) {
this.obj = $(element);
this.o = $.extend({}, $.fn[pluginName].defaults, options);
this.objId = this.obj.attr('id');
this.pwCtrls = '.jarviswidget-ctrls';
this.widget = this.obj.find(this.o.widgets);
this.toggleClass = this.o.toggleClass.split('|');
this.editClass = this.o.editClass.split('|');
this.fullscreenClass = this.o.fullscreenClass.split('|');
this.customClass = this.o.customClass.split('|');
this.storage = {enabled: this.o.localStorage};
this.initialized = false;

this.init();
}

Plugin.prototype = {

_loadAjaxFile: function (awidget, file, loader) {

var self = this;

awidget.find('.widget-body')
.load(file, function (response, status, xhr) {

var $this = $(this);

if (status == "error") {
$this.html('<h4 class="alert alert-danger">' + self.o.labelError + '<b> ' +
xhr.status + " " + xhr.statusText + '</b></h4>');
}

if (status == "success") {

var aPalceholder = awidget.find(self.o.timestampPlaceholder);

if (aPalceholder.length) {

aPalceholder.html(self._getPastTimestamp(new Date()));
}

if (typeof self.o.afterLoad == 'function') {
self.o.afterLoad.call(this, awidget);
}
}

self = null;
});
this._runLoaderWidget(loader);

},

}

})(jQuery, window, document);

这是插件的完整代码

enter link description here

最佳答案

上面的_是作者告诉你不要直接调用它。这并不意味着您不能,而是您不应该这样做。您将使用不应该直接使用的内部结构。

我认为您引用的内容不完整,但事实上该函数位于 Plugin.prototype 上,这意味着您可以在插件实例上调用它。如何获取插件的实例来调用它(以及是否可以)取决于插件(查看其文档);它很可能永远不会直接向您的代码公开实例,而只是通过添加到 jQuery.fn 的名称来提供其功能。

关于javascript - 如何调用对象内部的特定函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52170096/

26 4 0
文章推荐: javascript - 透视 CSS3 不工作
文章推荐: javascript - 就像所有 CSS 都是有效的 SCSS 一样,所有 JS 也是有效的 TS 吗?
文章推荐: javascript - 网站作为社交网络上的链接的漂亮外观
文章推荐: html - 如何让
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com