Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2016, 00:21
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

LocalStorage.ч2
Здравствуйте.Cкрипт для предосмотра сообщений.Не могу добить.
<form>
.......
  <textarea id="message" class="ajax_autogrowarea text-mess" name="message" rows="15">{$post_content}</textarea>
......
<div style="display:none;" class="preview">{include file='com_forum_preview.tpl'}</div>
.....
<button type="button"  id="add"  style="font-size:16px"/>Предосмотр</button>
....
</form>


var set_mes = '.text-mess';// отсюда получаю
var get_mes = '.text-mess2';// сюда вывожу,находится в диве
var button = '#add';        // кнопка
var div = '.preview';       // див с шаблоном для вывода 
var div = document.querySelector(div);


$(button).on('click',function() {
  /**** первое уловие ****/
 if(div.style.display == 'none') {     
   var message = $(set_mes).val();
    $(div).animate({height: 'show'}, 500); 
		var message = $(set_mes).prepend(message); 
	    var message = $(message).html();
	localStorage.setItem('message', message);
	   this.innerHTML = 'Закрыть';
       }else{
 /******второе условие****/	   
    localStorage.clear();
   $(div).animate({height: 'hide'}); 
   this.innerHTML = 'Предосмотр ';
   };
     });
	    if(localStorage.getItem('message')) {
$(get_mes).html(localStorage.getItem('message'));
}

Не хочет нормально выводить.В таком виде не выводит.Но если я не закрою див и перезагружусь и снова открою он выводит
предыдуший текст.
Если я помещаю это
if(localStorage.getItem('message')) {
$(get_mes).html(localStorage.getItem('message'));
}

в первое условие, всё выводится, но при закрытии не удаляется.localStorage.clear(); не выполняется.
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2016, 09:17
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Ну, согласно документации, должна добавлять контент,т.е. содержимое textarea, полученное здесь var message = $(set_mes).val(); к ...получается опять в textarea?
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2016, 10:40
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Блин, совсем запутался.Начну сначала.
1.Объявил переменные.
var set_title = '.text-title';// отсюда получаю
var get_title = '.text-title2';// сюда вывожу,находится в диве
var button = '#add';        // кнопка
var div = '.preview';       // див с шаблоном для вывода 
var div = document.querySelector(div);

2.Получаю содержимое textarea (строку) и заношу это в переменную
var title = $(set_title).val();

Теперь по идеи я могу эту строку сохранить в хранилище.
$(function(){localStorage.setItem('title', title);})
а по клику изымать её оттуда и помещать в другой див
$(function(){
localStorage.setItem('title', title);
$(button).on('click',function() {
$(get_title).html(localStorage.getItem('title'));
})
})


Но так не работает.

Последний раз редактировалось ureech, 14.02.2016 в 11:16.
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2016, 10:48
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ureech,
Что такое set_title, get_title ?
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2016, 10:50
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что-то куча переменных, которых может и объявлять бы не стоило, а вот $(get_title) - это что такое?
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2016, 11:17
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Куча переменных, согласен, но это на будущее для дефолтовых настроек.Туда каждый занесёт свои классы.
$(get_title) это я перепутал, сори. Мне удобней с титлом тестить, вот я у себя и переписал. Поправил в посту.
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2016, 11:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script> 
var mem = window['localStorage'] || null;
if(mem) mem['k'] = 'test';
function g() {
    if(mem) alert(mem['k'])
}
</script>     
</head> 
<body>
<button onclick="g()">GO</button>
</body> 
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 14.02.2016, 12:34
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

laimas,
при всём уважении, но мне хотелось бы разобраться почему мой код не работает.
Ответить с цитированием
  #9 (permalink)  
Старый 14.02.2016, 13:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script> 
$(function() {
    localStorage.setItem('title', $('#message').val());
    $('button').on('click', function(e) {
        console.log(localStorage);
        $('.preview').text(localStorage.getItem('title')).show()
        localStorage.removeItem('title');
        console.log(localStorage);
    })
});
</script>     
</head> 

<body>
<form>
<textarea id="message" class="ajax_autogrowarea text-mess" name="message" rows="2">чего-то от Smarty</textarea>
<div style="display:none;" class="preview"></div>
<button type="button"  id="add"  style="font-size:16px">Предосмотр</button>
</form>
</body> 
</html>


Запускайте, сверяйте со своим, чего у вас не так и нам не видно.

Последний раз редактировалось laimas, 14.02.2016 в 14:18.
Ответить с цитированием
  #10 (permalink)  
Старый 14.02.2016, 14:37
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Сообщение от laimas
Запускайте, сверяйте со своим, чего у вас не так и нам не видно.
Вы,laimas, стихами заговорили , это радует. Но, вот ваш код с моими параметрами меня совсем не радует.
Одно дело теория, другое практика.Попробуйте убрать с вашего кода "чего-то от Smarty" и вводить его при исполнении.У меня не работает. А так же в классе .preview есть дргой класс .text-title2 куда следует вывести данные, но они не выводятся. При нажатии на кнопку див открывается только со второго раза и показывает null.
Вот такая печальная история.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск