Javascript 在ie7中,鼠标悬停不适用于动态生成的li
我创建了一个menuItems数组,并将其分配给id为“leftMenu”的div 我有一个动态生成的UL用户列表和LI,它被附加到div中 我在动态生成的LI中设置了两个属性“onmouseover”和“onmouseout” 这两个属性在IE7中不起作用,但在IE8、IE9、Firefox、Safari和Chrome中效果良好 CSS: HTMLJavascript 在ie7中,鼠标悬停不适用于动态生成的li,javascript,internet-explorer-7,ie7.js,Javascript,Internet Explorer 7,Ie7.js,我创建了一个menuItems数组,并将其分配给id为“leftMenu”的div 我有一个动态生成的UL用户列表和LI,它被附加到div中 我在动态生成的LI中设置了两个属性“onmouseover”和“onmouseout” 这两个属性在IE7中不起作用,但在IE8、IE9、Firefox、Safari和Chrome中效果良好 CSS: HTML 如果需要更多信息,请告诉我 我不能100%确定为什么它在IE7中不起作用,但我不这么认为。IE7-支持setAttribute'event','f
如果需要更多信息,请告诉我 我不能100%确定为什么它在IE7中不起作用,但我不这么认为。IE7-支持setAttribute'event','fn'。您可能应该替换:
li.setAttribute("onmouseover","this.className='defaultsMenuBtn_hover'");
li.setAttribute("onmouseout", "this.className='defaultsMenuBtn'");
与
设置内联属性并不是添加监听器的好方法,最好使用javascript。这是因为在IE7中,DOM对动态添加的元素有限制 您必须在jQuery中使用live或delegate方法。谢谢David 在这里,我对代码做了一些修改
li.className='defaultsMenuBtn_hover';
li.className='defaultsMenuBtn
到
现在它工作得很好。它不工作的原因是IE7只部分支持setAttribute,不支持添加事件处理程序:谢谢@Duopixel我知道我6年前读过类似的东西:谢谢David这里对代码li做了一些改动。className='defaultsMenuBtn_hover';li.className='defaultsMenuBtn to this.className='defaultsMenuBtn_hover';这个.className='defaultsMenuBtn现在可以正常工作了。
var menuItems=new Array();
menuItems[0]="menu01";
menuItems[1]="menu02";
menuItems[2]="menu03";
menuItems[3]="menu04";
var menulength = menuItems.length;
var MenuWapper = document.getElementById("leftMenu");
var ul = document.createElement("ul");
MenuWapper.appendChild(ul);
for(i=0; i<menulength; i++){
var li = document.createElement("li");
var itemID = "item_"+i
li.className = "defaultsMenuBtn";
li.id = itemID
var browser = navigator.appName;
li.setAttribute("onmouseover","this.className='defaultsMenuBtn_hover'");
li.setAttribute("onmouseout", "this.className='defaultsMenuBtn'");
li.innerHTML = " "+menuItems[i]+"";
ul.appendChild(li);
}// end forloop
li.setAttribute("onmouseover","this.className='defaultsMenuBtn_hover'");
li.setAttribute("onmouseout", "this.className='defaultsMenuBtn'");
li.onmouseover = function() {
li.className='defaultsMenuBtn_hover';
}
li.onmouseout = function() {
li.className='defaultsMenuBtn';
}
li.className='defaultsMenuBtn_hover';
li.className='defaultsMenuBtn
this.className='defaultsMenuBtn_hover';
this.className='defaultsMenuBtn