d3.js - 将 Vue.js v-on 事件添加到 D3 SVG 元素

标签 d3.js vue.js mouseevent

是否可以将 VueJS v-on 事件添加到 D3 中的 SVG 元素?我想对 SVG 的每个矩形元素使用 v-on.mouseover 功能。我试图通过添加 v-on:mouseover="active = !active" 作为 D3 中的属性来实现这一点,如以下代码片段所示:

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">

最佳答案

这里的问题...

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

...是冒号正常定义命名空间,D3会认为v-on是命名空间。

但有一个解决方案:在它之前添加另一个冒号。

.attr(':v-on:mouseover', 'active = !active')
//     ^---- extra colon here

这是一个演示:

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>

关于d3.js - 将 Vue.js v-on 事件添加到 D3 SVG 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403544/

相关文章:

java:在 Mac OsX 上禁用 TrayIcon 右键单击

javascript - 在 Javascript 中识别一维数组的边缘情况

vue.js - vuetify v-flex xs12 只填充一半的宽度

WPF RepeatButton 鼠标向上

javascript - 如何访问 NuxtJs 存储中的 localStorage?

javascript - Vuejs 条件渲染的简写

c++ - qt c++ 多个鼠标事件不同的顺序

javascript - 如何在散点图中的点内添加标签?

javascript - d3js 强制节点起始位置

javascript - 将 FontAwesome 图标添加到 D3 图形