我在不了解如何在 JQuery 插件中制作“子功能”时遇到了一些问题。我想要实现的是如下所示
var tags = $('#tagContainer').ImageTags({ option1: "blah blah", option1: "blah blah", option1: "blah blah"});
tags.ShowTagAdd(someIdHere, someOtherId);
原因是有时我需要在页面加载时强制显示我的 TagAdd 对话框,我可以通过选项来做到这一点,但我想让它更干净:D 这是我的代码到目前为止,它是用 TypeScript 编写的但它应该像普通的 JQuery 一样可读:D
当子函数被调用时,我基本上不会运行我的方法ShowTag(categoryid: number, characterId: number)
,我该怎么做?
module ImageModule {
export interface DefaultOptions {
ImageId: number;
}
export class ImageTags {
defaults: DefaultOptions = {
ImageId: 0,
};
options: DefaultOptions;
TagsContainer: JQuery;
constructor(element: JQuery, options: DefaultOptions) {
this.options = <DefaultOptions> $.extend({}, this.defaults, options);
this.TagsContainer = element;
var self = this;
}
ShowTag(categoryid: number, characterId: number) {
console.log("test");
}
}
$.fn["ImageTags"] = function (options) {
return this.each(function () {
if (!$.data(this, "plugin_ImageTags")) {
$.data(this, "plugin_ImageTags", new ImageTags($(this), options));
}
});
}
}