BLUE.NET

-------- 众里寻她千百度

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

var flag = 0;
function mouseout(ev)
{
 if(flag == 0)
 {
  var list = document.getElementsByTagName("li");
  ev = ev || window.event;
    var tmp = ev.target || ev.srcElement;
  tmp = (tmp.tagName == "LI")?tmp:tmp.parentNode;
  tmp.className = "list_item";
 }
}
function mouseover(ev)
{
 flag = 0;
 var list = document.getElementsByTagName("li");
 ev = ev || window.event;
   var tmp = ev.target || ev.srcElement;
 tmp = (tmp.tagName == "LI")?tmp:tmp.parentNode;
 tmp.className = "list_item_over";
}
function mouseclick(ev)
{
 flag = 1;
 var list = document.getElementsByTagName("li");
 ev = ev || window.event;
   var tmp = ev.target || ev.srcElement;
    tmp = (tmp.tagName == "LI")?tmp:tmp.parentNode;
 tmp.className = "list_item_over";
}

页面代码

<li class="list_item"  onmouseover="mouseover();" onclick="mouseclick();" onmouseout="mouseout();" ><span>1</span><span>公司名</span><span>1</span><span>0</span><span>1</span><span>2009-03-14</span><span>改</span><span>删</span>

IE下的事件会具有冒泡行为,也就是说你点击<a>,click事件会向上传递到li。
之所以你的代码点击A会变色,是因为你传递的就是li对象,而3楼的写法是改变事件源的class,当你点击A,那么事件源就是A,改变的也是A的class,所以不会变色,你可以加个判断

posted on 2009-03-18 16:14  blue.net  阅读(318)  评论(0)    收藏  举报