Проблема с динамически генерируемыми событиями кликов JavaScript - PullRequest
0 голосов
/ 01 марта 2010

Я пытаюсь сгенерировать несколько div, каждый из которых должен иметь отдельный обработчик onclick. Однако, когда я создаю несколько элементов в моем приложении, все предыдущие элементы имеют то же событие onclick, что и первое. Ниже приведен код, который генерирует HTML на основе массива или объектов «Проект». Как я могу изменить этот код, чтобы сохранить все отдельные события кликов?

var t1 = new Tracker(function(projects) {
        var tempElem;

        projectList.innerHTML = "";
        for(i in projects) {
            tempElem = document.createElement("div");
            tempElem.setAttribute("id", projects[i].id);
            tempElem.setAttribute("class", "project");
            tempElem.innerHTML = projects[i].name;
            projectList.appendChild(tempElem);
            document.getElementById(projects[i].id).onclick = function() {
                t1.setActiveProject(t1.getProjectById(projects[i].id)); };
        }
    }, setActiveProject);

Ответы [ 2 ]

0 голосов
/ 02 марта 2010

Мне нужно выполнить эту задачу без использования фреймворков. Это для класса, который я беру.

0 голосов
/ 01 марта 2010

Использование jQuery сэкономит вам много времени и головной боли. Я бы порекомендовал использовать его для того, чего вы пытаетесь достичь.

http://docs.jquery.com/Main_Page

...