2011-09-08 9 views
2

javascriptにOPENという関数があります。この関数は、ユーザーがぼやける(入力フィールドにフォーカスを失う)か、Enterキーを押したときに呼び出されます。Javascriptイベントタイプを検出する

次に、OPEN()内で、ぼかしまたはキー押しによってトリガされたかどうかによって、2つの異なる機能が実現します。

Keypressのために、私はこのようにしました。

 if (e.keyCode==13) ENTER_FX(); 

あなたはBLUR

のためにこれを行うにはどうすればよい

はありがとう

UPDATE:私はそうである

"focusout" それはe.type ==べきであることがわかっ

ぼかしの代わりに適切な単語をフォーカスアウトしますか?

答えて

7

WORKING JSFIDDLE EXAMPLE

e.type 

あなたにこの情報

function OPEN(e) { 
    if (e.type !== "blur") { 
     if (e.keyCode === 13) { 
      ENTER_FX(); 
     } 
    } 
    else { 
     ENTER_FX(); 
    } 
} 
+0

更新を参照してください:あなたは正しいが、フォーカスアウトのある –

+0

それはあなたがそれをつけた方法によって決まります。もしそれを 'onfocusout'に添付すれば、イベントタイプは' focusout'、つまりぼかしを使って同じことが報告されます。 – jondavidjohn

+0

私はそれをブラーイベントに添付しました。 backbone.js apiを通して。しかし、とにかく、それは動作します。ありがとう –

0

e.typeは、この場合はおそらく「ぼかし」と言わなければなりません。

0

+0

運を与えるif(e.type == "blur") /*code here*/

event.type referenceを試してみてください。ぼかしでは、OPEN()内のすべてのものが実行されますが、if e.typeの下にあるものを除きます。 –

+1

@Williamそれは変です。イベントハンドラに 'alert(e.type)'や 'console.log(e.type)'を入れてみることができますか? –

関連する問題