2016-04-28 6 views
-1

私のコードを聴くことはできません。のKeyDownイベントが正しく

<div id="queryPage"> 
     <div id="queryToolbar" class="row" style="display: block;"> 
      <div id="query-option-panel" class="col-md-offset-1 col-sm-offset-1 col-xs-offset-1"> 
      </div> 
     </div> 


     <div id="queryModal" class="modal fade" style="display: none;"> 
      <div class="modal-dialog modal-lg"> 
       <div class="modal-content"> 
        <div class="modal-body"> 
        <form role="form" method="GET" class="query-form form-horizontal" id="query-form" style="display: block;"> 
         ... 

     <div id="screen" class="Screen"></div> 
    </div> 

マイバックボーンビュー:#queryToolbarで聞くことになって

module.exports = Backbone.View.extend({ 
    tagName: 'div', 
    events: { 
    'click #saveReportBtn': '_handleSaveReport', 
    'click #saveQuery': '_handleSaveQuery', 
    'keydown #queryToolbar': '_enter', 
    }, 
    _enter(event) { 
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console 
    }, 
... 

KeyPressイベントが、なぜのみ#クエリ、フォームポップアップされ、キャプチャすることができます。

おかげ

UPDATE

マイコード:クエリ、フォームがポップアップ

events: { 
    'keydown': '_enter', 
    }, 


    _enter(event) { 
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console 
    if (event.keyCode === 13) { 
     console.log('enter key down'); // eslint-disable-line no-console 
    } 
    if (this._getReportId() > 0) { 
     console.log('save query'); // eslint-disable-line no-console 
    } else { 
     console.log('save report'); // eslint-disable-line no-console 
    } 
    }, 

(PIC 1)、私はコンソール(PIC2)でログを見ることができます。しかし、質問フォームがポップアップされないとき、キーダウンを入力すると、何も見ることができません。混乱している。

PIC1: enter image description here

PIC2: enter image description here

+1

'_enter(event){'は '_enter:function(event){'になる必要があります。 –

+0

あなたが投稿したコードには、他者から指摘されている構文エラーが含まれています。最初に修正してください。 –

+0

@AndréDionどの行? – BAE

答えて

0

は、今あなたが何をしているか

_enter: function(event){ 
    console.log('event target:', + event.target.name + ', ' + event.currentTarget.name); // eslint-disable-line no-console 
} 

を以下のようにイベントハンドラを書くだけで、あなたが定義したことがない関数を呼び出すです。

+0

ありがとうございますが、これが理由ではありません。 #query-formがポップアップすると、コンソールにログが表示されます。 – BAE

+0

http://stackoverflow.com/questions/36944300/keyword-function-is-necessary-in-the-following-codes/36944939#36944939 – BAE

+0

問題のためにJSフィドルを作成してください – utkarsh

関連する問題