2012-03-31 10 views
0

ダイアログモーダルのjqueryコンポーネントを開発しようとしています。すべてのコンポーネント関数から設定にアクセスする方法はわかりません。オープン関数からsettings.zIndexにアクセスする必要があり、うまくいかないようです。jqueryコンポーネント全体からのアクセス設定

(function($) { 

    var methods = { 

     init: function(options) { 

      var defaults = { 
       bgClass: "fancy-dialog-bg", 
       bgShow: null, 
       zIndex: 100, 
       show: null 
      }; 
      var settings = $.extend(defaults, options); 

      return this.each(function() { 
       var obj = $(this).hide().css("position", "fixed").css("z-index", settings.zIndex).css("left", "300px").css("top", "200px"); 
      }); 

     }, 

     open: function() { 
        // alert(settings.zIndex); not working 
      var tes = $("<div></div>").css("backgroundColor", "#f00").css("position", "fixed").css("z-index", "99").css("width", "50%").css("height", "100%").css("left", "0").css("top", "0"); 
      $('body').append(tes); 
      var obj = $(this); 
      obj.show(); 

     }, 

     close: function() { 

      var obj = $(this); 
      $("#fancy-dialog-bg-" + obj.attr('id')).remove(); 
      obj.hide(); 

     } 

    }; 

    $.fn.fancyDialog = function(method) { 

     if (methods[method]) { 
      return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); 
     } 
     else if (typeof method === 'object' || !method) { 
      return methods.init.apply(this, arguments); 
     } 
     else { 
      $.error('Method ' + method + ' does not exist.'); 
     } 

    }; 

})(jQuery); 

答えて

0

変更この行:これまで

var settings = $.extend(defaults, options); 

methods.settings 

this.settings = $.extend(defaults, options); 

すると、設定はあなたが経由でアクセスすることができ、あなたのメソッドオブジェクトのプロパティになります

+0

うーん、それは動作していないようです:( –

+0

ええ、それはあなたがメソッドをディスパッチする方法のためです。 jQueryオブジェクトとして 'this'を使ってメソッドを呼び出すのは、設定が保存されている' methods'オブジェクトではありません。したがって、 'methods'オブジェクトを何らかの方法で渡さずに設定が保存されている場合、ビンゴにアクセスすることはできません。私はこの瞬間を実行しなければならない。メソッドの呼び出し方法や設定の保存方法の設計を変更する必要があります。 – jfriend00

+0

私はjquery.comからこのテンプレートをコピーしました。まだコンポーネントを作成する初心者です。開発しようとしているようなコンポーネントを構築するための良いテンプレートを知っていますか? ty –

関連する問題