捕获原型函数内的密钥代码

时间:2009-11-05 16:45:39

标签: jquery keystroke

我正在尝试捕获原型函数中的击键。

这是我的代码:

function txtBox(input) // pass textbox
{
     this.id = "myTextbox";
     this.txt = input
}
txtBox.prototype.init = function()
{
     this.txt.bind("keyup",this.keyup);
}
txtBox.prototype.keyup= function(event)
{
     alert("keycode: event.keyCode);
     alert(this.id);
}
var myTxt = new txtBox($(#txt)); // create object
myTxt.init();

捕获有效,但问题是keyup触发“我的对象外”,这意味着this.id返回“未定义”,即使 已定义。

有谁知道如何与此保持一致?

2 个答案:

答案 0 :(得分:0)

我尝试将代码粘贴到我的firebug中并在此页面上运行(尽管将警报更改为console.log)。它似乎工作得很好。它捕获我选择的文本域中的每个keydown,但不捕获其他任何地方。

答案 1 :(得分:0)

我看到两个问题,假设您的脚本中有一个名为“txt”的实际标记,如下所示:

<input type="text" id="txt"/>

此行需要从

更改
alert("keycode: event.keyCode);

alert("keycode": event.keyCode);

这也需要从

更改
new txtBox($(#txt)); 

new txtBox($('#txt')); 

它会提醒您的文本框名称,我不相信IE,您可以更改ID,就像您尝试更改它一样this.id="textbox"