函数在当前单击的raphael.js项目上

时间:2013-06-20 22:19:34

标签: html raphael

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

我有这个功能:

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

我试图用这个:

this.click(selectItem);

众所周知拉斐尔使用自己的点击功能,我认为this会起作用。 不幸的是,事实并非如此。 提前谢谢。

1 个答案:

答案 0 :(得分: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()调用。

编辑:看看 demo ,我用过它。