在yui的使用过程中,用到了其Calendar控件,发现了个问题:配置close属性后,点关闭,再次对文本框聚焦的时候,界面显示不了Calendar控件了。
html部分为:
<input type="text" runat="server" onfocus="javascript:CreateStartCalender('pStartTime','cal3Container');" id="pStartTime" /><span id="cal3Container"></span>
在js部分,这样做了下配置
YAHOO.MyCalendar.startCal = new YAHOO.widget.Calendar("startCal",container,{maxdate:t,close:true});
所有工作完成后,聚焦到文本框,点击calender的关闭图标,再次对文本框聚焦,没有弹出calender,但发现有程序执行。
看其源码,发现了问题:
YAHOO.widget.Calendar.prototype.hide = function() {
};
从中可以发现,它将Calender所要绘制到的区域样式属性改为了none,所以,实际程序做了render,但是不被显示出来而看不到。这也就造成了点击它的关闭按钮后,再次对文本框聚焦的时候看不到Calender了。
对其做下更改
YAHOO.widget.Calendar.prototype.hide = function() {
this.oDomContainer.className = ""; // Clear all style
};
搞定。
这应该是其不太合理的地方,被关闭后就展现不了控件了。如果为了保留展示区,可保留style。