Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ie7中,鼠标悬停不适用于动态生成的li_Javascript_Internet Explorer 7_Ie7.js - Fatal编程技术网

Javascript 在ie7中,鼠标悬停不适用于动态生成的li

Javascript 在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

我创建了一个menuItems数组,并将其分配给id为“leftMenu”的div

我有一个动态生成的UL用户列表和LI,它被附加到div中

我在动态生成的LI中设置了两个属性“onmouseover”和“onmouseout”

这两个属性在IE7中不起作用,但在IE8、IE9、Firefox、Safari和Chrome中效果良好

CSS:

HTML


如果需要更多信息,请告诉我

我不能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