私はSVGキャンバスに追加しているすべての要素に対して共通のクリックハンドラを用意しようとしています。しかし、ハンドラを新しく作成した要素に委譲することはできません。 SVG要素のイベント委譲
この
は私が委任しようとしたコードが、運です$("#floor").on('click','.drawnLine', function() {
//#floor is the SVG Element
//.drawnLine is the <line> element that is added dynamically
console.log($(this).data('index'));
});
更新:委任:
注意がいることを言及している
.on()
のjQueryのマニュアルで イベントはSVGでは機能しません。
ここで問題は、この問題の他の回避策ですか?
jQueryはHTML DOM用に設計されていますが、これはSVG DOMと似ていますが同一ではありません。おそらくあなたがしようとしていることはサポートされていません。 (同様に、以前のプロジェクトで独自のSVG互換バージョンでクラスを追加/削除するためのいくつかのjQueryメソッドを置き換える必要がありました)うまくいけば、誰かが良い代替案を提案できることを願っています。 –
[http://keith-wood.name/svg.html](http://keith-wood.name/svg.html) – Ohgodwhy
@Ohgodwhy、イベント委任はそのライブラリでも動作しません。 – Starx