0
   function jackpotKey(event)
   {
     var value = this.value;
     var key = event.keyCode;

     if (value.match(/^\d{3}$/) !== null && key !== 8)
     {
       this.value = value + ',';
     }
     else if((value.match(/^\d{3},\d{3}$/)) !== null && key!== 8)
     {
       this.value = value + ',';
     } 
    }

我对如何使用this.valueevent.keyCode访问传递给函数的对象的属性感到困惑。

this.value和不是event.keyCode同一个对象吗?如果是这样,为什么不event.value工作this.keyCode

4

2 回答 2

1

事件对象 和this是两个不同的对象。this会引用触发事件的DOMElement,事件对象就是事件。假设我们有

<input type="text" id="foo" value="bar"/>
<script language="javascript" type="text/javascript">
    document.getElementById('foo').onkeyup = function(e)//event
    {
        console.log(e === this);//false
        console.log((e.target || e.srcElement) === this);//true
        console.log(e.value);//undefined
        console.log(this.keyCode);//undefined
        console.log(e);//;logs instance of KeyboardEvent
        console.log(this);//logs input node
    };
</script>

只需检查此小提琴并查看您的控制台

于 2012-10-04T07:50:35.970 回答
0

不,这个和事件不是同一个对象例如文本框是对象和事件,有些人比

-文本框是指这个

- 按下的动作是指事件

所以:

- 与文本字段相关的参数(如文本)将在此对象中可用
并且
- 与操作相关的参数(如按下哪个键)是可用的事件对象

=>要仔细查看此和事件,请阅读以下内容。如果您对此不熟悉,则必须阅读。

对这个

关于活动

于 2012-10-04T07:48:40.337 回答