我需要检查元素上已附加/观察到的事件名称。
//foo is a button
var isEventObserved = ?// need help in this line
var evnName = ?;// how
If(isEventObserved && evnName === 'my:evn2')
{
$('foo').observe('my:evn1', mymethod1};
}
else
{
$('foo').observe('my:env2', mymethod2);
}
最佳答案
这就是您要找的内容
Event.cache[$('foo')._prototypeUID]
列出为该元素注册的事件。
Event.cache[$('foo')._prototypeUID]['element']
是对被观察元素的引用,对象中的其余属性是在元素(自定义或 native )
所以针对您的具体情况
if(Event.cache[$('foo')._prototypeUID]['my:evn2'] != undefined)
{
$('foo').observe('my:evn1', mymethod1);
}
else
{
$('foo').observe('my:env2', mymethod2);
}
请注意,我使用最新版本的 Prototype 1.7.2 对此进行了测试
关于javascript - 获取已被观察的事件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581547/