Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не передается фокус на input (https://javascript.ru/forum/events/44003-ne-peredaetsya-fokus-na-input.html)

jobmsk 30.12.2013 20:51

Не передается фокус на input
 
структура такая
<div id="ff" style="width:100px;height:100px;background-color:#ccc">
<input type="text" value="wow" id="my_input" style="display:none" />
</div>





при клике на div , происходит смена display:block;
и должна происходить передача фокуса на input через .focus()

но фокус через функцию не передается, только мышкой
в чем может быть проблема?

Заранее благодарен

danik.js 30.12.2013 21:59

Цитата:

Сообщение от jobmsk
и должна происходить передача фокуса на input через .focus()

Ага, через .focus() должна. А вот через .focus(function(){}) - нет!

В jQuery такие функции имеют два назначения - если агрументов нет, то вызывается одноименное событие. Если же передана функция - то никакого события не происходит, а сама функция устанавливается как обработчик события.
Так что после навешивания обработчика тебе нужно еще само событие сгенерировать, то есть вызывать .focus() без аргументов.

Вобще, в случае с focus() и click() происходит не только создание события, но и вызов одноименной функции, определенной на DOM-элементе, если я не ошибаюсь. Но большой разницы нет.

jobmsk 30.12.2013 22:20

Цитата:

Сообщение от danik.js (Сообщение 290095)
Ага, через .focus() должна. А вот через .focus(function(){}) - нет!

да, этот момент я заметил..но!!!
если я делаю click не мышкой а через trigger ('click'),то фокус опять не передается

danik.js 30.12.2013 22:49

Браузер какой? В хроме все пучком:
<div id="ff" style="width:100px;height:100px;background-color:#ccc">
<input type="text" value="wow" id="my_input" style="display:none" />
</div>

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$("#ff").click(function(){
    $("#my_input").show();
    $("#my_input").focus(function(){
        $(this).select();
    });
    $("#my_input").focus();
});
</script>

jobmsk 30.12.2013 23:39

ага точно, в FF значит проблема

danik.js 31.12.2013 00:20

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

danik.js 31.12.2013 00:23

Цитата:

Сообщение от jobmsk
ага точно, в FF значит проблема

Хз, у меня в FF 26 винда все отлично фокусируется.

jobmsk 31.12.2013 00:56

Цитата:

Сообщение от danik.js (Сообщение 290115)
Хз, у меня в FF 26 винда все отлично фокусируется.

точно при переходе через trigger фокусируется?

jobmsk 31.12.2013 01:06

странно тут фокусируется, а тут нет http://jsfiddle.net

danik.js 31.12.2013 01:16

Цитата:

Сообщение от jobmsk
странно тут фокусируется, а тут нет http://jsfiddle.net

:no: все ок хоть где


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