옵션을 사용하는 기본 플러그인을 만들고 다음 옵션을 사용하는 개체에서 메서드를 만들려고합니다.jQuery - 구성된 옵션을 사용하는 public 메서드 만들기
$.sn_Watermark = $.sn_Watermark || {
options: {
waterMarkText: "Watermark Text",
className: "watermarked"
},
show: function(selector) {
$(selector)
.addClass("watermarked")
.val("Watermark Text");
}
};
$.fn.sn_Watermark = $.fn.sn_Watermark || function (options) {
if(options == null)
options = $.sn_Watermark.options;
else
options = $.extend($.sn_Watermark.options, options);
return this.each(function() {
$tb = $(this);
if ($tb.val() == "" || $tb.val() == options.waterMarkText) {
$tb.addClass(options.className);
$tb.val(options.waterMarkText);
}
}).focus(function() {
$tb = $(this);
if ($tb.val() == options.waterMarkText) {
$tb.val("");
$tb.removeClass(options.className);
}
}).blur(function() {
//var clearLnk = "[LnkClearRowNum=" + $tb.attr('TextBoxRowNum') + "]";
if ($tb.val() == '') {
// $(clearLnk).hide();
$tb.addClass(options.className);
$tb.val(options.waterMarkText);
}
else if ($tb.val() == options.waterMarkText){ //if user types in water mark text
$tb.addClass(options.className);
}
else {
//$(clearLnk).show();
$tb.removeClass(options.className);
}
});
};
$(document).ready(function() {
$("[TextBoxRowNum]").sn_Watermark({waterMarkText: "My Text"});
$.sn_Watermark.show("[TextBoxRowNum]");
});
그래서 show로 호출하면 "하드 코딩 된"기본값이 사용됩니다. 나는 이런 짓을하려고했지만 운이 없었다.
$.sn_Watermark = $.sn_Watermark || {
options: {
waterMarkText: "Watermark Text",
className: "watermarked"
},
show: function(selector) {
$(selector)
.addClass(options.waterMarkTest)
.val(options.className);
}
};
제 질문은 show 메서드의 옵션을 쉽게 전달할 수 있습니까?