Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Элемент, в котором была нажата клавиша (https://javascript.ru/forum/dom-window/14968-ehlement-v-kotorom-byla-nazhata-klavisha.html)

Australl 09.02.2011 20:57

Странно, но input \ textarea действительно выдаёт нужное, а вот если писать в span \ div - только элемент, на котором обработчик...

dmitriymar 09.02.2011 21:26

а с div это вообще исходный пример на странице
или контейнером для div используется span?тогда стоит почитать что такое span

Australl 09.02.2011 21:32

Нет, засовыванием блочных контейнеров в потоковые я не занимаюсь. Вопрос то в другом: при contentEditable = true, не удаётся отловить именно элемент (div, ну или span), в котором произошло. Почему же для input, к примеру, получается?

dmitriymar 09.02.2011 21:41

/// зачем это всё? contentEditable = true -это уже HTML5 какой официально вводиться с 2012 года а полная поддержка наверное будет ещё позже всеми браузерами. тотже ие его не полностью поддерживает
используй текстэрии-ничем особо не отличается.

Australl 09.02.2011 21:45

Я в первом посту с этого начал, что используется именно contentEditable. Когда он оффициально вводиться - другой вопрос. Им пользуются и делают это активно. Почему js ведёт по-разному с узлами документа?
В общем ясно, придётся вешать на каждый. Хорошо хоть функции ссылочный тип данных.

dmitriymar,
Большое спасибо за дискуссию, очень быстро откликнулись.

dmitriymar 09.02.2011 21:54

Цитата:

Сообщение от Australl
Почему js ведёт по-разному с узлами документа?


<div id="edit" >
    <div id="t1" contentEditable="true">текст</div>
    <div id="t2" contentEditable="true">текст</div>
          ...
</div>

ну а вот так всё работает
и не работало наверно в исходном варианте -вложенные контейнеры воспринимались как текстовое заполнение-но это предположение

Australl 09.02.2011 21:58

dmitriymar,
Действительно.

Покопаю etherpad - там при наборе текста обновляется идентификатор элемента, в котором идёт набор (magicdomid).

dmitriymar 09.02.2011 22:05

Незачем капать-исправь ошибку и всё. см-пред пост

Australl 09.02.2011 22:17

Это ничем не отличается от того, чтобы вешать обработчики событий. Конечно, скорее всего так и придётся сделать, но всё же это не эталон.

p.s при designMode = 'on' вообще обработчики не срабатывают.

dmitriymar 09.02.2011 22:32

ну как не отличается?обработчик один-для основного контейнера-он отлавливает в каком из вложенных событие произошло.насколько я понимаю в основном есть контейнеры в каких надписи для полей -не редактируемые и поля редактируемые? ну дак разные классы для ред и не ред. если событие в ред элементе(будет видно по классу )то определить ид элемента ,иначе ничего не делать


Часовой пояс GMT +3, время: 13:06.