#解決したい事
Railsでウェブアプリを製作中なのですが、複数のチェックボックスがあり、チェックを付けたらその項目を1日非表示にしたいです。
jqueryのcookieを使い、自分なりにやってみたのですが非表示になってたりなってなかったりでうまくいきません。
わかる方いましたら是非知恵を貸していただきたいです。
よろしくお願いします。
#該当のソースコード
htmlファイル
<%= f.collection_check_boxes :habit_ids, @user.habits,:id,:task,checked: false do |b| %> <div class="one-click<%= b.value %>"> <%= b.label do %> <%= b.check_box %> <%= b.text %> </div>
jqueryファイル
$(document).on('turbolinks:load',function() { if($.cookie('complete')){ var cookie = ($.cookie('complete')) var habit_class = cookie.split(','); $(habit_class).each(function(index, element) { $(element).hide(); }); } else { var clicks = []; } $('input[name="user[habit_ids][]"]').one('click',function() { var p = $('<p>').text('達成!') $(this).before(p); $(this).hide(); $('input[name="user[habit_ids][]"]:checked').each(function() { clicks.push('.one-click' + this.value); }); $.cookie('complete', clicks, { expires: 1, path:'/'}); }); });
#エラー内容
Uncaught TypeError: Cannot read property 'push' of undefined at HTMLInputElement.<anonymous> (check.js:18) at HTMLInputElement.fn (event.js:84) at HTMLInputElement.dispatch (event.js:328) at HTMLInputElement.elemData.handle
pushがうまくいってないみたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/20 06:50
2020/11/20 07:22
2020/11/20 07:26