d3js:为同一个元素注册两次相同的事件(拖动)

时间:2015-05-18 11:43:56

标签: svg d3.js

我正在使用d3js来处理svg动画。我想将svg文件导入到我的svg画布中。导入的文件可能包含侦听器-d3.behavior.drag-用于拖动,我想注册新的拖动侦听器。问题是,当我导入文件时,我的监听器被删除,只剩下文件中的一个。我尝试使用名称空间,但它不起作用。也许我误解了应该怎么做。 请帮忙!!

修改
我在要导入的文件中:

var dragListener = d3.behavior.drag()
    .on("drag.act", function(d,i) {
        console.log("dargging " + i);
    })
    .on("dragstart.act", function(d,i) {
        console.log("drag start " + i);
    })
    .on("dragend.act", function(d,i) {
        console.log("drag end " + i);
        // some code ....
    });

d3.selectAll(".draggable").call(dragListener);

在svg画布中我有

var dragevt = d3.behavior.drag()
    .on("drag.svg", function(d,i) {
        console.log("parent dragging");
    })
    .on("dragstart.svg", function(d,i) {
        console.log("parent drag start");
    })
    .on("dragend.svg", function(d,i) {
        console.log("parent drag end");
    });

svgParent.call(dragevt);

类“draggable”的元素不输出“parent drag ...”

0 个答案:

没有答案