3

我加

d3.behavior.zoom().on("zoom", redraw);

现在节点上的点击事件在 IE9 中不起作用。

var nodeEnter = node.enter().append("g")
            .attr("class", "node")
            .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; })
            .on("click", click, true);

我该怎么做才能让点击事件在 IE9 中也能正常工作?

//詹斯

4

1 回答 1

3

通过覆盖 mouseup.zoom(在 mousemove 上),我能够在 IE9 中保留点击事件。

var pan = svg.append("g")
    .attr("transform", "translate(" + panTranslate + ")")
    .call(d3.behavior.zoom().on("zoom", function(d){
        panTranslate[0] += d3.event.translate[0];
        panTranslate[1] += d3.event.translate[1];
        pan.attr("transform", "translate(" + panTranslate + ")");
        d3.select(window).on("mouseup.zoom", function(){
            d3.select(window).on("mousemove.zoom", null).on("mouseup.zoom", null);
        });
        return true;
    })).on("dblclick.zoom", null);
于 2013-01-07T16:18:09.463 回答