Railstutorial (第 10 章) の演習を行っているときに、Jquery を使用して Textarea の残りの文字をカウントしました。実際には機能しますが、サインインごとに少なくとも1回ページを更新した場合にのみ機能します。つまり、サインインのたびにページが 1 回更新され、ページが完全に機能するようになるまで、クエリは実行されません。.countdown メソッドに css を使用しました。
だから、私の質問は..ページに残っている文字を表示するためにページを更新する必要があるのはなぜですか?また、より良い方法がいくつかありますか?
CSS コード
.countdown {
display: inline;
padding-left: 10px;
color: #338333;
}
これがmicropost.js.coffeeのコードです
updateCountdown = ->
remaining = 140 - jQuery("#micropost_content").val().length
jQuery(".countdown").text remaining + " characters remaining"
jQuery ->
updateCountdown()
$("#micropost_content").change updateCountdown
$("#micropost_content").keyup updateCountdown
ここに _micropost_form.html.erb の内容があります
<%= form_for(@micropost) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Maximum characters: 140" %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<span class="countdown"></span>
<% end %>
これは、ログインしてホームページに移動したときの画像です(ページを更新せずに)
ログインしたときの画像は次のとおりです。ホームページに移動してページを更新します