определить где курсор
Здравствуйте.
Нужно определить в каком имено текстовом поле курсор находится именно сейчас, главное его 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, время: 09:27. |