【发布时间】:2017-09-29 08:45:39
【问题描述】:
如何在使用类方法作为回调的类中添加事件处理程序?
<div id="test">move over here</div>
<script>
oClass = new CClass();
function CClass()
{
this.m_s = "hello :-/";
this.OnEvent = OnEvent;
with(this)
{
var r = document.getElementById("test");
r.addEventListener('mouseover', this.OnEvent); // this does NOT work :-/
}
function OnEvent()
{
alert(this); // this will be the HTML div-element
alert(this.m_s); // will be undefined :-()
}
}
</script>
是的,我知道一些使它起作用的怪癖,但是当引入这些事件处理程序时,预期的方式是什么???我再次有一种苦涩的感觉,没有人真正生活在 OOP 中:-(
【问题讨论】:
-
请注意,强烈建议不要使用
with语句,并且在严格模式下不允许使用。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript oop event-handling