gpt4 book ai didi

Javascript 命名空间和公共(public)函数

转载 作者:行者123 更新时间:2023-11-29 22:14:12 24 4
gpt4 key购买 nike

我正在编写一个 jQuery 插件,以允许以指定的形式初始化多个单个文件上传字段(使用 Fine Uploader)。

最终我希望表单知道它附加了这些单个 uploader ,因此我可以在手动开始文件上传和提交表单之前运行一些验证等。

我理想的初始化代码应该是这样的:

var form = $("form");
form.uploader();
form.addUploader({
element: '.uploader_one'
});
form.addUploader({
element: '.uploader_two'
});

到目前为止,我为实现这一目标而编写的插件如下所示:

(function($) {

var Uploader = function(form){
addUploader = function() {
// Initialize Fine Uploader
}

$(form).submit(function(e) {
// Run validations, then process uploaders
$(this).submit();
}
}

$.fn.uploader = function(options) {
var uploader = new Uploader(this);
};

})(jQuery);

除 addUploader 函数不可公开访问外,大部分都有效。

我可能以错误的方式解决这个问题吗?任何帮助将不胜感激!

最佳答案

您需要使 addUploader 成为对象的成员,以使其可通过对象访问(而不是作为与对象断开连接的全局变量):

 this.addUploader = function() {

插件必须对对象做一些事情,以便它可以访问,例如返回它:

$.fn.uploader = function(options) {
return new Uploader(this);
};

现在您可以从插件中获取对象并使用它:

var form = $("form");
var upl = form.uploader();
upl.addUploader({
element: '.uploader_one'
});
upl.addUploader({
element: '.uploader_two'
});

关于Javascript 命名空间和公共(public)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com