2011-10-22 53 views
0

我正在使用jQuery slideToggle在我的Rails應用程序中切換元素。當元素可見時,我想在輸入字段上自動對焦。 :autofocus => true的作品,但只有第一次輸入字段是可見的。如果我切換回該元素以隱藏它,然後再次切換以顯示它,:autofocus已消失。我必須刷新頁面才能使:autofocus正常工作。誰能幫我解決這個問題嗎?使用slideToggle強制自動對焦,無需重新加載應用程序

這裏是我的代碼:

<%= link_to 'expand', nil, :class => 'button white', :id => "newForm", :remote => true %></li> 

的jQuery:

$(function(){ 
    $('a#newForm').click(function() { 
     $('ul.form').slideToggle('500', function() { 
      // Animation complete. 
      }); 
    }); 
}); 

形式:

<ul class="form"> 
    <%= form_for(Object.new) do |f| %> 
    <div id="titleHolder"> 
     <%= f.text_field :title, :id =>"objectProfile", :autofocus => true %> 
    </div> 
    <div id="placeholder"> 
     <%= f.text_area :body, :id =>"objectProfile" %> 
    </div> 
    <li id="button"> 
     <%= submit_tag 'SUBMIT', :class => 'button orange' %> 
    </li> 
    <% end %> 
</ul> 

回答

1

我相信這應該爲你工作。

$(function(){ 
    $('a#newForm').click(function() { 
     $('ul.form').slideToggle('500', function() { 
      $('#titleHolder #objectProfile').focus() 
     }); 
    }); 
}); 
+0

工作很好,謝謝! – tvalent2 2011-10-22 14:57:09

相關問題