1

我正在使用Raphael.js绘制一些形状,我想知道如何通过单击它来选择当前并触发一个click()函数。

我有这个功能:

function selectItem() { 
    console.log("selected" + this.id);
    rect.attr({
        fill: "#ff0"
    });

我正在尝试使用它:

this.click(selectItem);

众所周知,Raphael 使用它自己的点击功能,我认为它this会起作用。不幸的是,它没有。提前致谢。

4

1 回答 1

2

您可以执行以下操作来使用 Raphael 的 click() 函数,查看DEMO

这个简单的代码使用click()函数:

var paper = Raphael("area", 400, 400);
var r = paper.rect(100, 50, 80, 60, 10).attr({fill: 'yellow', stroke: 'red'}),
    c = paper.circle(200, 200, 50).attr({fill: 'yellow', stroke: 'red'});


r.click(function() {
    // add your console.log if needed
    r.attr({fill: 'red', stroke: 'yellow', "stroke-width": 2});
    c.attr({fill: 'yellow', stroke: 'red'});
});

c.click(function() {
    c.attr({fill: 'red', stroke: 'yellow', "stroke-width": 2});
    r.attr({fill: 'yellow', stroke: 'red'});
});

现在,如果您想使用this,请记住它仅在您在元素创建范围内使用时才有效。您可以为所有元素手动添加此代码,也可以创建几个数组以将元素保留在其中。然后,如果您知道要应用的索引click(),只需调用它arr[ind].click()

编辑:看看这个演示,我用这个。

于 2013-06-21T07:59:45.743 回答