Элемент вызывает событие mouseout или mouseleave при наведении курсора на дочернее текстовое поле ввода, содержащееся в элементе. - PullRequest
2 голосов
/ 15 февраля 2011

Эта ошибка только в Chrome.

У меня есть div, который содержит поле ввода текста. По умолчанию div скрыт и отображается в событии нажатия кнопки и скрывается в событии отпускания мыши.

В Chrome при наведении указателя мыши на текстовое поле мыши вызывается событие mouseout / mouseleave, и div скрывается.

Шаги для воспроизведения:

  • Открыть http://jsfiddle.net/2AKAp/3/ в Chrome
  • Нажмите на кнопку, чтобы показать div
  • Наведите указатель мыши на любое место в div вне текстового поля, и оно не должно скрываться
  • Наведите курсор на текстовое поле, и div скрывает

Просто интересно, не сталкивался ли ты с этим раньше.


Вот ошибка, поданная командой Chromium, которая отслеживает эту проблему: http://code.google.com/p/chromium/issues/detail?id=68861

Похоже, это ошибка в Chrome, и она была исправлена. Похоже, исправление будет выпущено с версией 11.

1 Ответ

2 голосов
/ 16 февраля 2011

Я сделал обходной путь, используя contenteditable, но он требует много улучшений:

http://jsfiddle.net/2AKAp/6/

  • Если вы делаете много линий, и контейнер расширяется, перемещаете свои ходы в расширенную область, затем вы удаляете некоторый текст и оставляете свою мышь вне div, mouseout никогда не срабатывает, пока вы не вернетесь и не уйдете снова (chrome )
  • Должен быть простой способ ограничить количество символов до c.e. области

понял:

оберните вашу логику в if (event.target == this) и проблема исчезнет волшебным образом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...