URL에서 : http://dl.dropbox.com/u/143355/datepicker/datepicker.html 포커스가 Date range
인 경우 날짜 선택기 위젯이 표시됩니다. 코드는이 다음과 같습니다 생성 :부모 요소에 속한 자녀가 표시되지 않음
var $months = this.nav('months', 1); //nav some function
var $years = this.nav('years', 12);
var $nav = $('<div>').addClass('nav').append($months, $years);
this.$month = $('.name', $months);
this.$year = $('.name', $years);
$calendar = $("<div>").addClass('calendar');
// Populate day of week headers, realigned by startOfWeek.
for (var i = 0; i < this.shortDayNames.length; i++) {
$calendar.append('<div class="dow">' + this.shortDayNames[(i + this.startOfWeek) % 7] + '</div>');
};
this.$days = $('<div>').addClass('days');
$calendar.append(this.$days);
this.$picker = $('<div>')
.click(function(e) { e.stopPropagation() })
// Use this to prevent accidental text selection.
.mousedown(function(e) { e.preventDefault() })
.addClass('datepicker')
.append($nav, $calendar)
.insertAfter(this.$el);
그래서, $nav
및 $calendar
는 $picker
의 자녀입니다.
그러나 FF 또는 크롬으로이 위젯을 검사하면 요소가 calendar : shortDayNames 및 this.$days
에 추가되고 해당 요소는 캘린더 영역에서 강조 표시되지 않습니다.
나는 시간 지원을 추가하려면이 위젯을 확장 할,하지만이 문제 블록 내 방식. 이. $ picker에 div를 하나 더 추가하면이 모든 캘린더 요소가 캘린더 대신 div에 표시됩니다.
코드는 다음과 같습니다 :
var $hours = this.nav('hours', 0);
var $minutes = this.nav('minutes', 0);
var $timenav = $('<div>').addClass('nav').append($hours, $minutes);
this.$picker.append($timenav)
때문에 나는이 모든 일 아래에 표시 할 반면이, 위의 일을 보여줍니다 $ timenav에 국경 탑을 적용 할 때 위에서 언급 한 문제에 대한
공동 몇 가지 방법이 있습니다 : 여기 결과의 이미지입니다 이걸로 나? .append()
어떤 문제가 있습니까?
'$의 el'에 경계를 참조? 그 요소에 대한 참조가 아니어야합니까? 'insertAfter ($ el)' – Val
이있는 줄에서 $ el은 다음과 같이 플러그인 생성자에서 초기화됩니다 : this. $ el = $ (element); // datepicker가 초기화되는 요소가 입력됩니다. – Shanta