『前提・実現したいこと』
お気に入りボタンのON,OFFの切り替えができるように設定をしたい。
『質問内容』
お気に入りボタンのON,OFFの切り替えができるようにfa-starとfa-star-oの設定を行いました。
実行結果は変化しなかったので何が原因か自分で調べましたが解決できませんでした。
アドバイスをお願いします。
『発生している問題・エラーメッセージ』
// TODO: お気に入りONのとき、お気に入りリンクのアイコンを 塗りつぶしあり(fa-star) に設定する
if (dbdata.favorites && dbdata.favorites[messageId]) {
$(#${messageId}
).find('i').removeClass('fa-star-o');
$(#${messageId}
).find('i').addClass('fa-star');
return divTag;
};
『ソースコード』
if (dbdata.favorites && dbdata.favorites[messageId]) {
// TODO: favorites から該当のお気に入り情報を削除
const favorites = {
uid: currentUID,
text: message.text,
time: firebase.database.ServerValue.TIMESTAMP,
};
firebase
.database()
.ref(favorites/${messageId}
)
.remove();
console.log('データを削除しました');
} else {
firebase
.database()
.ref(favorites/${currentUID}/${messageId}
)
.set({
message,
createdAt: firebase.database.ServerValue.TIMESTAMP,
});
}
// TODO: favorites に該当のメッセージをお気に入りとして追加
const toggleFavorite = (e) => {
const { messageId, message } = e.data;
e.preventDefault();
}
};
const mfl = divTag.find('.message__favorite-link');
mfl.on(
'click',
{
messageId,
message,
},
toggleFavorite,
);
// TODO: お気に入りONのとき、お気に入りリンクのアイコンを 塗りつぶしあり(fa-star) に設定する
if (dbdata.favorites && dbdata.favorites[messageId]) {
$(#${messageId}
).find('i').removeClass('fa-star-o');
$(#${messageId}
).find('i').addClass('fa-star');
return divTag;
};
// TODO: 該当するデータをdbdata.favoritesから削除する
delete dbdata.favorites[messageId];
console.log('削除しました。'); // お気に入り一覧モーダルから該当のお気に入り情報を削除する $(`#favorite-message-id-${messageId}`).remove(); // TODO: お気に入りリンクのアイコンを、塗りつぶしなし(fa-star-o) に変更する $(`#${messageId}`).find("i").removeClass('fa-star'); $(`#${messageId}`).find("i").addClass('fa-star-o');
});
// TODO: dbdata.favoritesに登録する
dbdata.favorites[messageId] = favorite;
console.log(dbdata.favorites);
// お気に入り一覧モーダルを更新する
addFavoriteMessage(messageId, favorite.message);
// TODO: お気に入りリンクのアイコンを、塗りつぶしあり(fa-star) に変更する $(`#${messageId}`).find("i").removeClass('fa-star-o'); $(`#${messageId}`).find("i").addClass('fa-star');
});
};
あなたの回答
tips
プレビュー