jQueryとHTML5 localStorageを使用してfavユーティリティにadd to RSSフィードを入力しようとしています。私が達成しようとしているのは、投稿のタイトルでglyphicon-star-empty
をクリックするとglyphicon-star
に変更されますが、選択された/お気に入りのアイテムをlocalStorage
に保存し、glyphicon-star-empty
を表示する代わりにリフレッシュする必要があります。どの項目がお気に入りであるかに関するlocalStorageからデータを取得し、代わりにglyphicon-star
を表示します。jQueryのlocalStorageからクラスをオンザフライで置き換えることはできませんRSSフィード
私が直面している問題は最後の部分です。私はlocalStorageにfavアイテムを格納することができますが、glyphicon-star-empty
をglyphicon-star
と置き換える正しい方法が、ページが更新されたときにお気に入りのアイテムのためにオンザフライでは見つからないようです。
他の問題(すなわちglyphicon-star
をクリック)ユーザーが(見出し-RSS近く利用可能)glyphicon-bookmark
をクリックしたとき、それはすべてのお気に入りのアイテムを表示する必要がありますし、また、非選択の上のlocalStorageと、現在のページから項目を削除すべきであるということです
ここに完全コードfiddleがあります。
function blogRSS(url, container) {
var content = $('.data-content'); //console.log(content);
$.ajax({
url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
success: function(data) {
console.log(data.responseData.feed);
$.each(data.responseData.feed.entries, function(key, value) {
var thehtml = '<h4><a href="' + value.link + '" target="_blank">' + value.title + '</a></h4>';
$("body").append(itemLayout);
$('.panel-heading').last().html(thehtml);
$('.data-content').last().html(value.content);
$('.data-title').last().next().slideToggle(0);
//console.log($('.panel-heading').last().html(value.title));
//console.log($('.panel-heading').closest('.data-title').text());
if(localStorage.favorite != null){
arr = JSON.parse(localStorage.favorite);
for(var i = 0; i < arr.length; i++){
// console.log($('.panel-heading').last().text() == arr[i].title);
if($('.panel-heading').text() == arr[i].title){
console.log('match');
$('.bkmark_icon').removeClass('glyphicon-star-empty');
$('.bkmark_icon').addClass('glyphicon-star');
//console.log('match');
}
}
}
}); $('.data-title').find('h4').addClass('panel-title');
です。 $(。panel-heading)オブジェクトをループして、必要なクラスに設定してください。 – Imprfectluck
また、タイトルにはローカルストレージに保存されている余分なスペースがあり、したがって一致しません。 – Imprfectluck
ああ。愚かな私!できます。 しかし、**他の問題**については、私はまだそれのための有効な解決策を見つけることはありません.. – NewBee