huankfy

明月出天山,苍茫云海间

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

   在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() {

    this.oDomContainer.style.display = "none";
};

   从中可以发现,它将Calender所要绘制到的区域样式属性改为了none,所以,实际程序做了render,但是不被显示出来而看不到。这也就造成了点击它的关闭按钮后,再次对文本框聚焦的时候看不到Calender了。

   对其做下更改

   YAHOO.widget.Calendar.prototype.hide = function() {

    this.oDomContainer.innerHTML = ""// Clear content
    this.oDomContainer.className = ""// Clear all style
};

  

   搞定。

   这应该是其不太合理的地方,被关闭后就展现不了控件了。如果为了保留展示区,可保留style。

 

posted on 2009-03-09 18:56  Yanbo.Hu  阅读(812)  评论(0编辑  收藏  举报