关于网址: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或铬中查看此小部件,则附加到日历的元素:shortDayNames和this.$days
它们不在日历区域中高亮显示。
我要扩展这个小部件添加时间支持,但这个问题块我的方式。 当我添加一个div到这个$ picker时,所有这些日历元素都显示在这个新的 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 2012-08-01 13:17:32
这行。$ EL在插件的构造函数中被初始化为:this。$ el = $(element); //元素是在哪个日期选择器被初始化时输入的。 – Shanta 2012-08-01 13:24:54