Добавление события onclick к элементу li в IE6 - PullRequest
1 голос
/ 23 сентября 2011

Итак, у меня есть список, и я хочу динамически добавить событие через JavaScript.У меня он отлично работает в Firefox, но мне также нужно, чтобы он работал в IE6 (тьфу), но это необходимо.Это не должно быть красиво, просто нужно работать.Событие, которое запускает, просто удаляет элемент из списка.Я не уверен, что мне нужно сделать, чтобы это заработало.Вот небольшой кусочек того, что у меня есть до сих пор.Идентификаторы уникальны, я просто привел их в качестве примера.Он прекрасно работает во всех новых браузерах.

    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 ]

2 голосов
/ 23 сентября 2011

У меня нет IE6 для проверки этого, но я заменяю строку onclick:

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

с этим может работать:

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

вы также можете использовать attachEvent для IE и придерживаться старого решения (или лучше использовать addEventListener ) на более новых.

2 голосов
/ 23 сентября 2011

Чистый 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 );});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...