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);
うーん、それは動作していないようです:( –
ええ、それはあなたがメソッドをディスパッチする方法のためです。 jQueryオブジェクトとして 'this'を使ってメソッドを呼び出すのは、設定が保存されている' methods'オブジェクトではありません。したがって、 'methods'オブジェクトを何らかの方法で渡さずに設定が保存されている場合、ビンゴにアクセスすることはできません。私はこの瞬間を実行しなければならない。メソッドの呼び出し方法や設定の保存方法の設計を変更する必要があります。 – jfriend00
私はjquery.comからこのテンプレートをコピーしました。まだコンポーネントを作成する初心者です。開発しようとしているようなコンポーネントを構築するための良いテンプレートを知っていますか? ty –