###実現したいこと
ボタンをクリックすると、jQueryに記載した反応が欲しいのです!
toggleを使用しており、ボタンを押す度、表示/非表示を繰り返したいです。
しかし、クリックをする前のページ更新時点でjQuery反応が出てしまいます。
書き方やインデントに問題があるのでしょうか。
postcoffee
1$ -> 2 $("#c1-link").click -> 3 $("#c1").toggle(1000); 4 $('textarea').first().focus();
html
1<%= link_to "表示する", "#", id: "c1-link" %> 2 <section id="c1"> 3 <textarea name="content" placeholder="入力1"><%= @post.content %></textarea> 4 <textarea name="content2" placeholder="入力2"><%= @post.content2 %></textarea> 5 <textarea name="content3" placeholder="入力3"><%= @post.content3 %></textarea> 6 <textarea name="content4" placeholder="入力4"><%= @post.content4 %></textarea> 7 </section>
そして、下記のように記載すると、
ページ更新時にtoggleとfocusの反応があり、そのままtoggleで設定した速さ非表示されていきます。
ボタンをクリックするとc1のsectionが消えます。
再度クリックしても何も表示されません。
css
1#c1{ 2 display:none; 3}
逆に下記のようにdisplay:noneを消すと、
ページ更新時にtoggleとfocusの反応があり、そのままtoggleで設定した速さで非表示されていきます。
ボタンをクリックするとc1のsectionが表示されます。
再度クリックしても非表示になることはありません。
css
1#c1{ 2}
###追記
下記のように変更したところ、ボタンクリックを押したらしっかりとアラートが出ました。
toggleにした場合、反応が得られない謎はまだ続いています。
postcoffee
1$ -> 2 $("#content1-link").click -> 3 alert "クリック!"
###追記2
$(document).on 'turbolinks:load’で囲ってみた。
coffee
1$(document).on('turbolinks:load', function() { 2 $ -> 3 $("#c1-link").click -> 4 $("#c1").toggle(1000); 5 $('textarea').first().focus(); 6});
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/08 03:48
2019/10/08 04:00
2019/10/09 07:05
2019/10/09 07:10
2019/10/09 07:27
2019/10/09 10:30 編集
2019/10/09 12:54 編集
2019/10/09 13:00
2019/10/09 13:02
2019/10/09 16:45
2019/10/09 22:54 編集
2019/10/10 16:41
2019/10/10 18:40
2019/10/12 08:19
2019/10/12 09:01