2016-11-01 4 views
1

По какой-то причине следующий код запускается только тогда, когда окно получает фокус, но не тогда, когда поля ввода получают фокус или любой другой элемент (независимо от того, есть ли у них табуиндекс или нет).Событие фокусировки не срабатывает в полях ввода (без jQuery)

Я не хочу использовать метод someElement.addEventListener, потому что элемент не привязан к представлению во время добавления прослушивателя событий.

var handleFocus = function(event) { 
    var el = event.target; 
    console.log(el); 
} 

addEventListener('focus', handleFocus, false); 

В основном я должен слушать, когда сфокусированы поля ввода. Моя причина в том, что я хочу применить его к родительскому окну, заключается в том, что поля формы добавляются и удаляются из представления в разное время (Aurelia).

Когда событие срабатывает, я хочу иметь возможность читать свойства цели, чтобы увидеть, какие действия мне нужно предпринять.

Любая помощь на это было бы супер ...

+0

Вы не объявляя какой элемент иметь addEventListener добавил к нему. По умолчанию используется окно i.e. myElement.addEventListener (....). Чего вы пытаетесь достичь? Если это просто подсветка элемента, то это можно сделать в CSS. – jeff

+0

Событие 'focus' не пузырится, но MDN говорит, что вы можете заставить делегирование делегирования работать, установив параметр useCapture для addEventListener в true. Или используйте событие «focusin» вместо этого, потому что оно * делает пузырь, но MDN говорит, что он не поддерживается в FF. – nnnnnn

+0

@nnnnnn вы говорите, что фокус не должен срабатывать, когда вы фокусируетесь на вводе? (когда вы слушаете объект окна) – 3Dom

ответ

1

Оказывается, вам необходимо установить опцию «useCapture» в действительности. Если вы хотите узнать больше о опции «useCapture», то this StackOverflow question выполняет лучшую работу, чем MDN.

Просто означает, что я должен был изменить от этого:

addEventListener('focus', handleFocus, false); 

... к этому:

addEventListener('focus', handleFocus, true); 
+0

спасибо, это помогло мне – user1709076

 Смежные вопросы

  • Нет связанных вопросов^_^