2017-11-21 39 views
1

D3のSVG要素にVueJS v-onイベントを追加できますか? SVGの各矩形要素にv-on.mouseover機能を使用したいと思います。私は、次のスニペットのように、D3の属性としてv-on:mouseover="active = !active"を追加することによって、そうしようとしています:Due SVG要素にVue.js v-onイベントを追加する

h.selectAll('.bar') 
    .data(myCSVdata) 
    .enter() 
    .append('g') 
    .attr('v-on:mouseover', 'active = !active') 
    .attr('class', 'bars') 
    .append('rect') 

が、D3はv-on:を取り除くようだと私は

<g mouseover="active = !active" class="bars"> 

答えて

1

問題が残っていますコロンが通常ネームスペースを定義し、D3はv-onがネームスペースであると考えます。

ソリューションがあります:それは前に別のコロンを追加します。

var div = d3.select("body") 
 
    .append("div") 
 
    .attr(':v-on:mouseover', 'active = !active'); 
 
    
 
console.log(div.node())
<script src="https://d3js.org/d3.v4.min.js"></script>

+0

おかげジェラルド:ここ

.attr(':v-on:mouseover', 'active = !active') 

はデモです!それは本当に正しく属性をリストする問題を解決します。悲しいことに、vue.jsはもはやこの文脈でv-on指令を解釈していないようです。私は2つをどのように統合するかについて間違った方向にいるはずです。 – SteveSong

+0

はい、属性が設定されているとは思いますが、機能しないと感じています...残念ながら、私はVueユーザーではありません。とにかく、D3はコロンの前のすべてが名前空間だと思うことを知っています。 –

+0

あなたは質問に絶対に正しく答えましたが、誰かが私を正しい方向に向けることを希望して、少しでもチェックを外すつもりです。 – SteveSong

関連する問題