我想使用jQuery的焦点()方法,我不明白为什么它不工作。这里有一个小提琴:http://jsfiddle.net/3RGRv/4/
当您按下“准备摇滚”,该按钮的处理程序被调用,并且在它的内部,$('#playlistNameInput').focus();
控制台记录消息确认,这是达到和处理,但仍然没有焦点发生。任何想法为什么这是?
我想使用jQuery的焦点()方法,我不明白为什么它不工作。这里有一个小提琴:http://jsfiddle.net/3RGRv/4/
当您按下“准备摇滚”,该按钮的处理程序被调用,并且在它的内部,$('#playlistNameInput').focus();
控制台记录消息确认,这是达到和处理,但仍然没有焦点发生。任何想法为什么这是?
使用本
setTimeout(function(){$('#playlistNameInput').focus();},500);
你的第一个问题是,在#step1
你有随机按钮结束标记。 Input
s是自动关闭的。
下面是步骤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">
其次,当你点击“准备摇滚”,它把你带到#step2
,不具有#playlistNameInput
。
最后,移动$('#playlistNameInput').focus()
到fadeOut
以便它能够运行之后的下一个步骤是在褪色。
$("#prompt").fadeOut('10000', function()
{
$("#step1").css("visibility", "visible").hide().fadeIn('slow');
$('#playlistNameInput').focus();
});
如果该元素没有显示(或者至少被认为是布局的一部分),它就不能被聚焦。等到动画完成后淡出,然后调用'focus'。如果这不起作用,我不知道为什么。 Backbone和jQuery的结合是很难看的。附: ''不关闭'' – Ryan
备注:您应验证您的HTML代码,这将显示出大量潜在问题。例如,一个HTML文档应该有一个“head”部分,而不是“header”部分。 http://validator.w3.org/ – Guffa
'分钟'大声笑我想你忘了在代码复制时删除''。 –