2016-04-28 7 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> 

Мой позвоночник Вид:

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 
    }, 
... 

нажатие клавиши событие должно быть прослушаны #queryToolbar, но почему только когда # запрос-формы он может быть захвачен.

Благодаря

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 
    } 
    }, 

При запросе форма выскочило (рис 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

Спасибо, но это не причина. при появлении # формы запроса, я вижу консоль журнала. – BAE

+0

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

+0

Пожалуйста, создайте скрипт JS для своей проблемы – utkarsh