繁体   English   中英

IE9 onclick Bug?

[英]IE9 onclick Bug?

this.fillSelectBox  = function (flowCounterObj)
{
    while (this.selectBox.hasChildNodes())
    {
        this.selectBox.removeChild(this.selectBox.firstChild);
    }
    var line = 0;
    for(line = 0; line < this.lines.length; line++)
    {
        var newOption = document.createElement('option');
        newOption.setAttribute('value','line_' + line);
        newOption.innerHTML = 'Line ' + line;
        newOption.onclick = function(){flowCounterObj.setCurrentLine(this.index);};
        this.selectBox.appendChild(newOption);
    }
};

上面的代码从选择框中删除所有选项,并为我在数组中的每一行创建一个新选项。

它为onclick添加了一个事件。

当我在Chrome中选择我的选项时,他们会调用setCurrentLine()函数。 但是在IE9中却没有。

我查看了IE9和Chrome中的调试窗口,它们应用了相同的东西。

我尝试过使用setAttribute('onclick',flowCounter.setCurrentLine('+line+');'); 但这在IE9中都不起作用(在Chrome中);

我也尝试过使用addEventListener(...); 但这在IE9中不起作用(在Chrome中)。

(在旁注上我应该为此实际使用addEventListener吗?这是正确的方法吗?)

我把代码放在JS lint中,它说我不应该在循环中创建函数?

有任何想法吗? 你认为这实际上可能是一个错误吗?

马特

编辑 :我在IE9中尝试了以下HTML代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <select id='lineSelect' size='4'>
        <option value='line_1' onclick='alert("whoop");'>Line 1</option>
        <option value='line_2' onclick='alert("whoop");'>Line 2</option>
        <option value='line_3' onclick='alert("whoop");'>Line 3</option>
        <option value='line_4' onclick='alert("whoop");'>Line 4</option>
    </select>
</body>
</html>

这没有任何作用? 在chrome / safari / firefox / opera中! 也是用onClick / onChange做的。

我查看了这个msdn页面 ,似乎一个option没有onclick事件。 但是,它确实有onselectonchange事件。

我认为在这种情况下,使用selectbox本身的onclickonchange事件是最佳解决方案。

另请注意,从IE9开始,onclick不再起作用了。 onClick “区分大小写”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM