Показать сообщение отдельно
  #26 (permalink)  
Старый 01.07.2012, 14:45
Интересующийся
Отправить личное сообщение для Философ Посмотреть профиль Найти все сообщения от Философ
 
Регистрация: 21.08.2010
Сообщений: 20

Хм....сейчас сам попытался опять изменить...выводило..попроб вал добавить функцию добавления поста при клике...Но, посты перестали выводится, а в хранилище появилось:
post_id_NaN =>[""]
post_id_undefined=>""
post_ids=>NaN
И в итоге посты не выводятся(

Вот весь код:
// JavaScript Document
$(document).ready(function(){
	//$.getJSON(
	//	'json/posts.json',
	//	function(data){
		//var prefix = "post_id", postsIds_key = "post_ids";
		var post, postIds, prefix = "post_id_", postsIds_key = "post_ids";

	//	postIds = $.map(data, function (post) {
	//	    var stringified = JSON.stringify(post);
	//	    localStorage.setItem(prefix + post.id, stringified);
	//	    return post.id;
	//	});

		postIds = JSON.stringify(postIds); // в принципе, можно было и join'ом

		//localStorage.setItem(postsIds_key, postIds);

	  	//$.each(data, function(postIndex, post) {
		//	localStorage.setItem('post_id'+post['id'], JSON.stringify(post));
		//	posts += localStorage['post_id'+post['id']];
		//})
		// prefix определён выше.
		// postsIds_key тоже определён выше.

		postIds = localStorage.getItem(postsIds_key);

		if (postIds) {
		    postIds = JSON.parse(postIds);

		    posts = $.map(postIds, function (postId) {
		        var post;
		        post = localStorage.getItem(prefix + postId);
		        post = JSON.parse(post);
		        
		        return post;
		    });
		} else { 
			$.getJSON(
				'json/posts.json',
				function(data){
					postIds = $.map(data, function (post) {
		    		var stringified = JSON.stringify(post);
		    		localStorage.setItem(prefix + post.id, stringified);
		    		return post.id;
					});
				});
			localStorage.setItem(postsIds_key, postIds);
		}
			$.each(posts, function(entryIndex, entry) {
					var html = '<article><header><h3>';
					html += entry['title']+'</h3></header><section><p>';
					html += entry['body']+'</p></section><footer>';
					if(entry['tags']){
						html += '<div id="tags">';
						$.each(entry['tags'], function(tagIndex, tag){
							html += '<span class="label">' + tag + '</span>'
						});
						html += '</div><div class="controls"><a class="btn btn-danger btn-mini">удалить</a></div>';
					}
					html += '</footer></article>';
					$('#posts').append(html);
       		 });
		//});
		//Добавление поста
		$('button[type="submit"]').click(function(){
			var post ={
				title: $('#zagol').val(),
				body: $("#body").val(),
				tags: $('#tags').val()
			}
			postIds = $.map(post, function (post) {
		    		var stringified = JSON.stringify(post);
		    		post.id = postIds ? postIds[postIds - 1] + 1 : 0;
		    		localStorage.setItem(prefix + post.id, stringified);
		    		return post.id;
					});
                        postIds = JSON.stringify(postIds);
			localStorage.setItem(postsIds_key, postIds);
		});
});

Последний раз редактировалось Философ, 01.07.2012 в 14:54.
Ответить с цитированием