Я пытаюсь использовать метод jQuery focus(), и я не понимаю, почему он не работает. Здесь скрипка: http://jsfiddle.net/3RGRv/4/
Когда вы нажимаете "Ready to rock", вызывается обработчик кнопки и внутри него $('#playlistNameInput').focus();
Консоль регистрирует сообщения, подтверждающие, что это было достигнуто и обработано, но до сих пор не происходит никакого фокуса. Любая идея, почему это так?
использовать это
setTimeout(function(){$('#playlistNameInput').focus();},500);
Первая проблема заключается в том, что в #step1
у вас есть случайные теги для кнопок. Input
являются самозакрывающимися.
Здесь очищенная версия для шагов 1 и 2:
// Step 1
<input id="playlistNameInput" size="10">
that has at least <input id="totalHours" size="2"> hours and
<input id="totalMins" size="2"> minutes of music.</p>
// Step 2
<input id="songTitle" placeholder="Title">
<input id="songArtist" placeholder="Artist">
<input id="songMinutes" placeholder="Minutes">
<input id="songSeconds" placeholder="Seconds">
Во-вторых, когда вы нажимаете "Ready to Rock", вы #playlistNameInput
на #step2
, у которого нет #playlistNameInput
.
Наконец, переместите $('#playlistNameInput').focus()
fadeOut
$('#playlistNameInput').focus()
в fadeOut
чтобы он запускался после того, как следующий шаг исчез.
$("#prompt").fadeOut('10000', function()
{
$("#step1").css("visibility", "visible").hide().fadeIn('slow');
$('#playlistNameInput').focus();
});
Готово. Здесь убирается, работает скрипка.
focus
. Если это не сработает, я не знаю почему. Сочетание Backbone и jQuery довольно сложно. PS</button>
не закрывается<input>
head
секцию, а неheader
раздела. validator.w3.org