Событие размытия Javascript на div обертки - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть внутреннее поле ввода и элемент div-оболочки.Я добавил атрибут contenteditable к элементу div, чтобы иметь возможность фокусироваться на нем.Я хотел бы поймать событие onblur для div .

Теперь, если я в фокусе на поле ввода и щелкаю мышью в другом месте экрана событие размытияполя ввода называется ofcourse, но не событие размытия на div.Конечно, это имеет смысл - вот как работает браузер.

Но в любом случае, мне было интересно, возможно ли и как этого добиться.

  <div id="wrapperDiv" contenteditable class="wrapperDivClass">
      <input id="innerId">
  </div>

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Проблема решена, когда я изменил размытие на foucsout

Из веб-документов MDN: Событие focusout вызывается, когда элемент собирается потерять фокус. Основное различие между этим событием и размытием состоит в том, что последнее не всплывает.

Это именно то, что мне было нужно.

0 голосов
/ 24 апреля 2018

Чтобы событие размытия сработало на элементе, элемент должен сначала получить фокус.Но элементы не получают фокус по умолчанию.

Вы можете добавить tabindex="0" или contentEditable к вашему div, чтобы он получал фокус.

Посмотреть его в действии: http://jsfiddle.net/t25rm/

Ответили здесь: Div - функция onblur

...