L
Liming
Hello all,
I have a custom class object with some prototype methods like
setKeyDownEvent, etc.
The problem is on my webpage, after I instantiate the class, I try to
do .addEventLister() to a textarea by attaching my custom class
object's setKeyDownEvent,etc to it. Long story short, here is an
example of my code.
----------------
var myownobject ;
window.onload = init;
function init()
{
myobj= = new MyObject();
initListeners();
}
function initListener()
{
if (navigator.userAgent.indexOf("Safari") > 0) {
myobj.getTextarea().addEventListener("keydown",myobj.setKeyDownEvent,true);
myobj.getTextarea().addEventListener("keyup",myobj.setKeyUpEvent,true);
} else if (navigator.product == "Gecko") {
myobj.getTextarea().addEventListener("keypress",myobj.setKeyDownEvent,false);
myobj.getTextarea().addEventListener("keyup",webcmd.setKeyUpEvent,false);
} else {
myobj.getTextarea().attachEvent('onkeydown',myobj.setKeyDownEvent,false);
myobj.getTextarea().attachEvent('onkeyup',myobj.setKeyUpEvent,false);
}
}
MyObject is a custom class I have and the problem is inside its
MyObject.setKeyDown mehtod, I'm calling other methods of MyObject by
doing like
Myobject.prototype =
{
setKeyDownEvent : function()
{
this.method2()
}
}
....
so when a say key event is pressed, firefox say this.mehtod2() is not a
function (i know this module works btw, because before I did the
traditional way like so, it worked)
<script ...>
...
function kd(e)
{
myobj.setKeyUpEvent(e)
}
function ku()
{
myobj.setKeyUpEvent(e)
}
</script>
<textarea id="mytextarea" oonKeyPress="kd(event);" onKeyUp="ku(event)"
/>
so I'm thinking, this's try to find "this" inside window object instead
of MyObject.
I have a custom class object with some prototype methods like
setKeyDownEvent, etc.
The problem is on my webpage, after I instantiate the class, I try to
do .addEventLister() to a textarea by attaching my custom class
object's setKeyDownEvent,etc to it. Long story short, here is an
example of my code.
----------------
var myownobject ;
window.onload = init;
function init()
{
myobj= = new MyObject();
initListeners();
}
function initListener()
{
if (navigator.userAgent.indexOf("Safari") > 0) {
myobj.getTextarea().addEventListener("keydown",myobj.setKeyDownEvent,true);
myobj.getTextarea().addEventListener("keyup",myobj.setKeyUpEvent,true);
} else if (navigator.product == "Gecko") {
myobj.getTextarea().addEventListener("keypress",myobj.setKeyDownEvent,false);
myobj.getTextarea().addEventListener("keyup",webcmd.setKeyUpEvent,false);
} else {
myobj.getTextarea().attachEvent('onkeydown',myobj.setKeyDownEvent,false);
myobj.getTextarea().attachEvent('onkeyup',myobj.setKeyUpEvent,false);
}
}
MyObject is a custom class I have and the problem is inside its
MyObject.setKeyDown mehtod, I'm calling other methods of MyObject by
doing like
Myobject.prototype =
{
setKeyDownEvent : function()
{
this.method2()
}
}
....
so when a say key event is pressed, firefox say this.mehtod2() is not a
function (i know this module works btw, because before I did the
traditional way like so, it worked)
<script ...>
...
function kd(e)
{
myobj.setKeyUpEvent(e)
}
function ku()
{
myobj.setKeyUpEvent(e)
}
</script>
<textarea id="mytextarea" oonKeyPress="kd(event);" onKeyUp="ku(event)"
/>
so I'm thinking, this's try to find "this" inside window object instead
of MyObject.