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, время: 19:43. |