附加html中的d3按钮回调

问题描述 投票:-2回答:1

我有一个有HTML的d3代码部分。

var div = d3.select("body")
              .append("div")
              .attr("id", "mouseover")
              .attr("class", "decisionMenu")
              .style("opacity", 1)
              .html('
              <button type="button" onclick="doFunction();">Click Me</button>')

doFunction的定义如下:

function doFunction() {
 console.log("decision button click"); 
}

我想在按钮的onclick回调中调用doFunction。但是,由于html是一个字符串,编译器找不到doFunction。单击按钮时如何进行函数调用?

编辑(之前我没有包括这个):

我从另一个函数调用函数:

function showDecisionMenu(d) {            var g = d3.select(this); 
            var div = d3.select("body")
              .append("div")
              .attr("id", "mouseover")
              .attr("class", "decisionMenu")
              .style("opacity", 1)
              .html('<button type="button" onclick="doFunction();">Click Me</button>')

从这里打电话:

nodeEnter.on("mouseover", showDecisionMenu)
javascript html d3.js callback
1个回答
1
投票

无论如何你正在使用d3,你也可以留在d3这样做:

var div = d3.select("body")
    .append("div")
    .attr("id", "mouseover")
    .attr("class", "decisionMenu")
    .style("opacity", 1);
div.append('button')
     .attr("type", "button")
     .text("Click Me")
     .on("click", doFunction);
© www.soinside.com 2019 - 2024. All rights reserved.