Не передается фокус на 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() но фокус через функцию не передается, только мышкой в чем может быть проблема? Заранее благодарен |
Цитата:
В jQuery такие функции имеют два назначения - если агрументов нет, то вызывается одноименное событие. Если же передана функция - то никакого события не происходит, а сама функция устанавливается как обработчик события. Так что после навешивания обработчика тебе нужно еще само событие сгенерировать, то есть вызывать .focus() без аргументов. Вобще, в случае с focus() и click() происходит не только создание события, но и вызов одноименной функции, определенной на DOM-элементе, если я не ошибаюсь. Но большой разницы нет. |
Цитата:
если я делаю click не мышкой а через trigger ('click'),то фокус опять не передается |
Браузер какой? В хроме все пучком:
<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> |
ага точно, в FF значит проблема
|
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
|
Цитата:
|
странно тут фокусируется, а тут нет http://jsfiddle.net
|
Цитата:
|
Цитата:
вставляю то же код, и фокус не передается!!! и видимо по этой же причине и на моем ресурсе фокус не фурычит.... |
повторюсь тоже
Цитата:
|
тогда я что-то не понмаю....как один код может по разному работать причем в одних и тех же браузерах , но у разных юзеров....
|
Цитата:
|
http://jsfiddle.net/jobmsk/TSq/1/
самое дурное ,что только на javascript форус работает...чудеса однако |
Там какие-то глюки. Дело не в коде. Даже если тупо убрать код, то при клике по полю курсор появляется, но фактически ввод происходит в редакторе кода, а не в поле. Но это происходит не всегда.
И кстати в коде ошибка. Навешивать обработчик focus надо вне обработчика клика. Иначе с каждым кликом будет увеличиваться количество обработчиков-дубликатов, выполняющих this.select() |
если unbind делать, то размножаться не будет..проблема не в этом, а втом что нужно чтобы фокус не мышкой , а через trigger появлялся....а по факту такая фича только javascript работает , больше нигде не удалось добиться
|
Цитата:
Думаю что без фреймов все будет отлично работать во всех браузерах. |
сейчас этот код на отдельную сраницу вынес...и он блин заработал, правда в оригинале к input еще keydown привязан
те по клавише и просиходит запуск trigger с активацией и фокусировкой на следующем input |
похоже проблема проявляется в полной контрукции, на втором inpute припереходе через Tab
|
Потому что для таба действие по умолчанию - переход к следующему элементу на странице, учавствующему в обходе. На момент нажатия поле скрыто, так что оно следующим не является. А в таком случае фокус переходит к <body>. Что и происходит у тебя. Вызывай e.preventDefault()
И не тупи, поправь код чтобы небыло кучи обработчиков - вынеси навес обработчиков за пределы обработчиков click. А то может появиться куча других подобных вопросов, типа что все тупит. |
Цитата:
|
а вот за эту подсказку спасибо....реально промахивался фокус, prevent вставлял , но видимо не заметил эффект о него
|
Часовой пояс GMT +3, время: 21:46. |