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(); не выполняется. |
Ну, согласно документации, должна добавлять контент,т.е. содержимое textarea, полученное здесь var message = $(set_mes).val(); к ...получается опять в textarea?
|
Блин, совсем запутался.Начну сначала.
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,
Что такое set_title, get_title ? |
Что-то куча переменных, которых может и объявлять бы не стоило, а вот $(get_title) - это что такое?
|
Куча переменных, согласен, но это на будущее для дефолтовых настроек.Туда каждый занесёт свои классы.
$(get_title) это я перепутал, сори. Мне удобней с титлом тестить, вот я у себя и переписал. Поправил в посту. |
<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>
|
laimas,
при всём уважении, но мне хотелось бы разобраться почему мой код не работает. |
<!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>
Запускайте, сверяйте со своим, чего у вас не так и нам не видно. |
Цитата:
Одно дело теория, другое практика.Попробуйте убрать с вашего кода "чего-то от Smarty" и вводить его при исполнении.У меня не работает. А так же в классе .preview есть дргой класс .text-title2 куда следует вывести данные, но они не выводятся. При нажатии на кнопку див открывается только со второго раза и показывает null. Вот такая печальная история. |
| Часовой пояс GMT +3, время: 03:20. |