определить где курсор
Здравствуйте.
Нужно определить в каком имено текстовом поле курсор находится именно сейчас, главное его id. т.е есть, например 2 тексовых поля <textarea id="txt_1"></textarea> <textarea id="txt_2"></textarea> <input type="submit" value="Где курсор?"> По любому событию нужно определить где курсор, например по нажатию на кнопку. т.е.например пишем в txt_1, нажимаем на кнопку, получает id="txt_1". аесли пишем в во втором поле, то получаем ид воторго поля. Я единственое что могу полагать, так это перебором определять где курсор. Т.е. в цикле по текстовым полям, что-то вроде этого functin func(){ for(var i=1; i<3;i++){ obj = document.getElementById("txt_"+i); if(!obj) continue; // тут как-то определить, что есть в нем курсор if(нашли тут курсор){ alert('id = txt_'+i); return; } } alert('Курсор не нашли'); }есть способ проще? |
Используй события
|
Skip , пардон, но мне нужно не на объект событие навесить, а по событию определить в каком объекте. понятно что оно произойдет в window, а конечный дочерний объект какой?
|
почему в window?
<textarea id="txt_1" onclick="func(this)"></textarea> <textarea id="txt_2" onclick="func(this)"></textarea> функция получит тот элемент на который кликнули. Есть ещё море способов. А дочерние элементы firstChild и поехал дальше nextSibling |
Может так попробовать:
<textarea id="txt_1" onfocus="where = this;">1</textarea> <textarea id="txt_2" onfocus="where = this;">2</textarea> <input type="text" onfocus="where = null;"> <button onclick="(where) ? alert(where.id) : alert('Не выбрана текстареа');">траляля</button> <script type="text/javascript"> var where = null; </script> |
Как только Вы нажмете кнопку, фокус с другого элемента формы снимется.
Если же Вы имеете в виду клавишу на клавиатуре, то все значительно проще: вешаем обработчик keydown или keypress на document, а потом смотрим, от кого пришло событие: e.srcElement||e.target, где e - первый параметр функции-обработчика. |
Часовой пояс GMT +3, время: 03:53. |