Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何识别拉斐尔中按下的按钮?_Javascript_Raphael - Fatal编程技术网

Javascript 如何识别拉斐尔中按下的按钮?

Javascript 如何识别拉斐尔中按下的按钮?,javascript,raphael,Javascript,Raphael,我有一个Raphael代码,可以动态生成不同的按钮。然后我注册了这些按钮的一个功能,我需要确定按下了哪个特定的按钮 在Flash/AS3中,您可以通过以下方式获得调用函数的按钮名称: function myFunction (e:MouseEvent){ trace (e.currentTarget.name); } 拉斐尔有没有类似的方法来达到这个目的 谢谢。首先,由于您使用的是Raphael,我假设您正在使用Raphael对象(即rect)创建自定义按钮。 好的,您可以执行以下

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

在Flash/AS3中,您可以通过以下方式获得调用函数的按钮名称:

function myFunction (e:MouseEvent){
      trace (e.currentTarget.name);
}
拉斐尔有没有类似的方法来达到这个目的


谢谢。

首先,由于您使用的是Raphael,我假设您正在使用Raphael对象(即rect)创建自定义按钮。 好的,您可以执行以下操作:

创建两个全局变量,一个用于保存动态创建的按钮的计数,另一个用于保存单击事件中按钮的id。 每次将Raphael对象创建为按钮时,通过数据函数为其分配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");
});

祝你好运

谢谢,这似乎很有效。我还发现了全局变量的另一种用法,并将它们指定给按钮“button.node.setAttributeid,count”,这似乎很好。我发现这会成为DOM元素的ID,这非常有用。你应该接受答案,这样人们以后会回答你的答案。