jQuery에 대한 간단한 플러그인을 만들었습니다.이 플러그인은 주어진 두 datePickers에 대해 minDate 및 maxDate를 설정합니다. 이제 확장하고 날짜를 설정하는 함수를 추가하고 싶습니다.jQuery 커스텀 플러그인 - 함수를 추가하는 방법
JS
(function($) {
$.fn.dateRange = function(){
return this.each(function() {
var from, to;
var self = $(this);
var selectedDate;
$("input",this).prop('readonly', true);
from = $('.from',this);
to = $('.to',this);
from.datepicker({
onClose:function(selectedDate) {
$(this).siblings(".to").datepicker("option", "minDate", selectedDate);
}
});
to.datepicker({
onClose:function(selectedDate) {
$(this).siblings(".from").datepicker("option", "maxDate", selectedDate);
}
});
//add a function
this.setDate = function (f, t) {
from.datepicker("option",{
defaultDate: new Date(f),
maxDate: new Date(t)
}).val(f);
to.datepicker("option",{
defaultDate: new Date(t),
minDate: new Date(f)
}).val(f);
};
});
};
})(jQuery);
$("div.dateRange").dateRange();
//later
$("#label1").dateRange().setDate("07/02/2013","07/06/2013");
콘솔 말한다되지 않은 유형 오류 : [대상 객체]있는 방법이 없다 "하여 setDate '. 플러그인에 더 많은 기능을 추가하는 가장 좋은 방법은 무엇입니까? 많은 의견에 의해 지적 http://jsbin.com/acovuj/2/edit
http://iainjmitchell.com/blog/?p=360이 기사는 좋은 예를 들어 접근법을 설명합니다. – Tommi
이를 수행하는 한 가지 방법은 메서드 이름을 문자열로 전달한 다음 내부 함수를 호출하는 jQuery UI (http://api.jqueryui.com/button/#method-enable)와 같습니다. 기본적으로 Tommi의 링크가 설명하는 것은 무엇입니까! –
'this.setDate'를'self.setDate'로 변경하면 제대로 작동 할 것입니다. 그러나 이것은 좋은 접근 방법이 아니므로 더 나은 디자인 패턴을 보려면 [jQuery 보일러 플레이트] (http://jqueryboilerplate.com/)를 살펴 봐야합니다. – mekwall