Я работаю над пользовательским виджетом додзё. Внутри виджета я динамически создаю несколько DOM-узлов и подключаю функции к их событиям.
Мой код выглядит примерно так:
var treeItem = document.createElement("div");
if (current.children) // 'current' is set up like: { id: <int>, name: <string>[, children: <id-array>] }
{
var treeItemExpander = document.createElement("img");
[...] // stuff like setting classes and setting the path, nothing special
dojo.connect(treeItemExpander, "onclick", function () { alert("test expander"); }); // problem line
treeItem.appendChild(treeItemExpander);
}
treeItem.innerHTML += current.name;
dojo.connect(treeItem, "onclick", function () { alert("test item"); });
this.tree.appendChild(treeItem);
Теперь, как можно догадаться из комментариев, событие условно-вложенного элемента не запускается.
Даже когда я закомментировал соединение на treeItem
(который работает, кстати), у меня не было успеха. Я пытался treeItemExpander.onclick = function () {...}
тоже безрезультатно. Единственное, что сработало, но не имеет смысла в виджете, было treeItemExpander.setAttribute("onClick", "alert('test');");
.
Редактировать : Я сделал скрипку с вопросом: http://jsfiddle.net/YCJ6X/
Редактировать : jovica (в dojo-IRC) обнаружил, что проблема не возникает в Chrome на Ubuntu.
Так как мне прикрепить событие к этому изображению?