以编程方式访问点击事件

时间:2015-07-27 11:06:51

标签: javascript jquery d3.js rect

我创建了一些d3矩形,并为每个矩形提供一个click事件: 首先我创建了容器:

var svgContainer = d3.select("#Container")
                                .append("svg")
                                .attr("width", 720)
                                .attr("height", 45);

然后在for循环中我在容器内创建每个矩形:

var rectangle = svgContainer.append("rect")  
                                        .attr("x", 10 + xAppend)
                                        .attr("y", 5)
                                        .attr("width", 120)
                                        .attr("height", 35)
                                        .attr("stroke", "black")
                                        .attr("name", name)
                                        .on("click", function () {
                                            // Click event...
                                            //...
                                        });

现在在不同的功能中,我想触发该点击功能。变量'矩形'它不是全局的,它是在for循环中创建的,我从for循环中创建了6个矩形。

到目前为止,我在其他功能中所做的是:

var tempContainer = d3.select("#Container");
var test = tempContainer.selectAll("rect");   

这给了我一个1个对象的数组,该对象是6个矩形的数组,然后我遍历数组找到我想要的矩形。

for (var i = 0; i < test[0].length; i++) {
    if (search.item.desc == test[0][i].attributes[5].value)
    {
        var testing = test[0][i];
        //testing.attributes[5].value   works fine
        //testing.click();       does not work
        //testing.on('click')();        does not work
    }
}

在for循环中,变量&#39;测试&#39;是我想要的矩形,我可以访问它的属性,就像我在上面的if语句中所做的那样。但我无法访问并触发点击功能。

1 个答案:

答案 0 :(得分:0)

可以使用以下方法访问点击事件功能:

testing.__onclick();