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.valueとアクセス方法について混乱しています。event.keyCode

this.valueevent.keyCodeは同じオブジェクトではありませんか? もしそうなら、なぜうまくいかないevent.valuethis.keyCodeですか?

4

2 に答える 2

1

イベント オブジェクトとthis2 つの異なるオブジェクトです。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 に答える