2

指定されたフォームで複数の単一ファイル アップロード フィールドを ( Fine Uploaderを使用して) 初期化できるようにする jQuery プラグインを作成しています。

最終的には、これらの単一のアップローダーが添付されていることをフォームに知らせて、ファイルのアップロードを手動で開始してフォームを送信する前に、いくつかの検証などを実行できるようにしたいと考えています。

私の理想的な初期化コードは次のようになります。

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 関数がパブリックにアクセスできないことを除いて、これのほとんどは機能します。

私はこれについて間違った方法で行っているのでしょうか?どんな助けでも大歓迎です!

4

2 に答える 2

1

addUploader(オブジェクトから切断されたグローバル変数としてではなく) オブジェクトを介してアクセスできるようにするには、オブジェクトの a メンバーを作成する必要があります。

 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'
});
于 2013-04-23T21:45:56.880 に答える