私はカスタムdojo-widgetに取り組んでいます。ウィジェット内では、いくつかのDOM-Nodeを動的に作成し、そのイベントに関数を接続しています。なぜ接続されたonclickイベントは起動しませんか?
私のコードは次のようになります。
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');");
です。
編集:jovica(道場-IRCでの)問題は、Ubuntuの上でChromeで発生していないことが判明:http://jsfiddle.net/YCJ6X/
編集:私が問題とフィドルを作りました。
どうすればその画像にイベントを添付できますか?
あなたは、文字列の代わりに「onclickの」イベント名のための「クリック」を使用してみましたか? *編集*決して気にせず、道場は "上"で涼しいようです... – Pointy