我正在尝试捕获原型函数中的击键。
这是我的代码:
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
返回“未定义”,即使 已定义。
有谁知道如何与此保持一致?
答案 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"