如何识别拉斐尔按下了哪个按钮?

时间:2013-06-08 09:18:32

标签: javascript raphael

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

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

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

在拉斐尔有没有类似的方法来实现这一目标?

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

  1. 创建2个全局变量,一个用于保留动态创建按钮的 count ,另一个用于保持按钮的 id 点击活动。
  2. 每次将Raphael对象创建为按钮时,通过data()函数为其指定id。
  3. 示例:

    // 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");
    });
    

    祝你好运