親属性<svg>
変換属性がプログラムによって変更されると、内部SVG要素の奇妙な動作が発生します。変更後は、CSSセレクタ(:hover
など)も、JavaScriptのリスナー(onClick
)も動作していません。 <circle>
要素を含む変換後にSVG要素がイベントリスナーを失う
シンプル
は一例です<svg>
:ここ<svg width="200" height="200"> <circle cx="30" cy="30" fill="white" stroke="black" stroke-width="1" r="20" onClick="alert('clicked')"> </circle> </svg>
<svg>
は、各ウィンドウをクリックした後、属性を変換更新JSコード:
var svg = document.getElementsByTagName('svg')[0] var x = 0 window.onclick = function() { svg.setAttribute('transform', 'translate(' + x + ',' + x + ')') x += 3 }
https://jsfiddle.net/ohpaaevt/6/
誰かがこれについていくつかの光を当てることができますか?
EDIT:私はちょうど<svg>
に属性を変換を適用することも、Firefoxのみで、Chromeで動作しないことに気づきました。他のブラウザではテストしていません。
setAttributeのいくつかの場所ではなく、「ではなく」必要な構文エラーがあります –
あなたのコードを投稿に含めることはできますか?リンクオフサイトは良い投稿の実践とはみなされません。 - また、あなたは "緩く"ではなく "失う"ことを意味したと思います。 – evolutionxbox
@RobertLongson私はES6文字列テンプレートを使用しました。ここにはバージョンがありませんhttps://jsfiddle.net/ohpaaevt/6/ – zyzo