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,所以不会变色,你可以加个判断