在IE6中将onclick事件添加到li元素

时间:2011-09-23 13:02:20

标签: javascript events internet-explorer-6

所以我有一个列表,我想通过JavaScript动态添加一个事件。我在Firefox中工作得很好,但我也需要它在IE6(ugh)中工作,但它是必需的。它不一定非常漂亮,只需要工作。触发事件只是从列表中删除该项。我不知道我需要做些什么才能让它发挥作用。这是我到目前为止的一小部分。 ids是独一无二的,我只是把它作为一个例子。它适用于所有较新的浏览器。

    var id = "123456";
    var list = document.createElement("ul");
    var listElement = document.createElement("li");
    listElement.setAttribute("id", id);
    listElement.setAttribute("onclick", "removeFromList('" + id + "')");
    listElement.appendChild(document.createTextNode(content));
    list.appendChild(listElement);
    document.getElementById('myElement').appendChild(list);

2 个答案:

答案 0 :(得分:2)

纯javascript,应该在IE6中运行:

var id = "123456";
var list = document.createElement("ul");
var listElement = document.createElement("li");
listElement.setAttribute("id", id);
listElement.appendChild(document.createTextNode(content));
list.appendChild(listElement);
document.getElementById('myElement').appendChild(list);

if( listElement.addEventListener ) {
    listElement.addEventListener("click", function(e) {
        removeFromList( id );}, false );
} else {
    listElement.attachEvent( "onclick", function(e) {
        removeFromList( id );});
}

答案 1 :(得分:2)

我没有IE6来测试这个,但是更换了onclick-line:

listElement.setAttribute("onclick", "removeFromList('" + id + "')");

这可能有效:

listElement.onclick = function(){ removeFromList(id); };

你也可以使用attachEvent进行IE浏览,并坚持使用旧的解决方案(或者更好地使用addEventListener)。