1

我有一个动态生成不同按钮的 Raphael 代码。然后我正在向这些按钮注册一个功能,我需要确定按下了哪个特定按钮。

在 Flash/AS3 中,您可以通过编写如下内容来获取调用函数的按钮名称:

function myFunction (e:MouseEvent){
      trace (e.currentTarget.name);
}

在 Raphael 中是否有类似的方法可以实现这一目标?

谢谢。

4

1 回答 1

0

首先,由于您使用的是 Raphael,我假设您正在使用 Raphael 对象(即矩形)创建自定义按钮。

好的,您可以执行以下操作:

  1. 创建 2 个全局变量,一个保留count动态创建的按钮,另一个保留id单击事件中的按钮。
  2. 每次将 Raphael 对象创建为按钮时,通过 data() 函数为其分配 id。

例子:

// global vars
var count = 0;
var id    = 0;


// your code
var paper  = Raphael(0, 0, 1000, 1000);
var button = paper.rect(100, 100, 60, 20, 10).attr({fill: 'red'});
var text   = paper.text(130, 110, "Submit").attr({fill: '#fff'});

count++;

button.data("id", count);

// some more code

button.click(function() 
{
    id = this.data("id");
});

祝你好运

于 2013-06-08T17:52:37.793 回答