日期:2014-05-16  浏览次数:20377 次

DIV层IE兼容性问题,外层的DIV控件的onBlur事件,在触发内层的时候,如何解决冒泡问题
在chrome下运行是成功的,在IE下会有冒泡问题。
DIV内层的事件无法触发,会首先触发外层DIV的onBlur事件(data.js 第50行)。
请问,如何解决这个问题,让鼠标在DIV内层触发时,不会去触发DIV上的onBlur事件?



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script language=javascript src="date.js"></script>
<script type="text/javascript">

var oCalendarChs=new PopupCalendar("oCalendarChs"); //初始化控件时,请给出实例名称:oCalendarChs

oCalendarChs.weekDaySting=new Array("日","一","二","三","四","五","六");
oCalendarChs.monthSting=new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");
oCalendarChs.oBtnTodayTitle="今天";
oCalendarChs.oBtnCancelTitle="取消";
oCalendarChs.mutilSelect = false;
oCalendarChs.Init();

var oCalendarChs1=new PopupCalendar("oCalendarChs1"); //初始化控件时,请给出实例名称:oCalendarChs

oCalendarChs1.weekDaySting=new Array("日","一","二","三","四","五","六");
oCalendarChs1.monthSting=new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");
oCalendarChs1.oBtnTodayTitle="今天";
oCalendarChs1.oBtnCancelTitle="取消";
oCalendarChs1.mutilSelect = true;
oCalendarChs1.Init();

</script>
<style>
.mouseover{border: 1px solid #5589AA; background-color:#BCD0DE;}
.mouseout{border: 1px solid #FFFFFF; background-color:#FFFFFF}
.onSelected{border: 1px solid red; background-color:red}

</style>
</head>
<br/>
<br/>

<table>
<tr>
<td width="200px">
<input readonly type="text" name="birthday" onclick='getDateString(this,oCalendarChs)'  value="2013-02-12" size="18">
</td>
<td width="200px">
<input readonly type="text" name="bir"  onclick='getDateString(this,oCalendarChs1)' value="2013-02-12" size="18">
</td>
</tr>
</table>

</html>





------解决方案--------------------
估计是onblur这个事件,在IE下,对div使用,处理的不好吧,

IE下本来就是属于冒泡的,如果正常触发的话,肯定也是先触发子元素的。

你意思应该是当鼠标离开这个日历的div时,就隐藏,改成onmouseout吧。

onblur还是常用于输入框吧,
------解决方案--------------------
本帖最后由 showbo 于 2013-12-28 20:47:28 编辑
非输入控件onblur其他浏览器不支持吧。。只有IE支持

你 可以试试阻止冒泡试试

    htmlAll += " onbl