2012-08-01 119 views
3

关于网址: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它们不在日历区域中高亮显示。

enter image description here

我要扩展这个小部件添加时间支持,但这个问题块我的方式。 当我添加一个div到这个$ picker时,所有这些日历元素都显示在这个新的 div中,而不是日历

enter image description here

代码如下:

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它显示了上述天,而我希望它出现下面的所有天的问题 这里是结果的图像:

enter image description here

是否有某种方式合作我出了这个? .append()是否会产生任何问题?

+0

'$ el'边界?这不应该是对元素的引用吗?在你有'insertAfter($ el)' – Val 2012-08-01 13:17:32

+0

这行。$ EL在插件的构造函数中被初始化为:this。$ el = $(element); //元素是在哪个日期选择器被初始化时输入的。 – Shanta 2012-08-01 13:24:54

回答

0

这是一个CSS问题。 添加以下属性.calendar类,解决的问题:

overflow: hidden; 

这里是合成的图像:看到正确的位置

enter image description here

1

您是否尝试搜索将timepicker附加到jQuery .ui Date Picker插件的现有插件?请致电Adding a Timepicker to jQuery Date Picker plugin

我希望这会帮助你。

+0

感谢您的建议,但问题不是关于timepicker的可用选项,我想扩展bootstrap datepicker。 – Shanta 2012-08-03 06:03:02