javascript - 获取已被观察的事件名称

标签 javascript prototypejs dom-events

我需要检查元素上已附加/观察到的事件名称。

//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/

相关文章:

javascript - 如何使用动态名称更新 Json 对象

javascript - 选择选项时更改选项的颜色

javascript - 向多个 <input/> 元素(现在和 future )添加事件(例如模糊)

javascript - clearTimeout 似乎没有清除全局定义的计时器 ID

使用原型(prototype)的 Event.observe 返回函数

javascript - 在 jQuery Draggable 中设置多个包含

javascript - react useEffect 异步警告?

javascript - 如何使用 webpack 在脚本中获取原始文件路径?

javascript - 单独的信息和错误日志

javascript - 观察 scriptaculous Builder 生成的 <a> 标记上的 'click' 事件