Глобальные переменные
Помогите, плиз, я дизайнер, в JS очень слаб:-?
Есть скрипт, который по клику на объект с id b1 присваивает переменной x значение 2, и затем (на другой странице) если это значение равно 2, то прячет объект с id t2 <script type="text/livescript"> var x=0; $(document).ready(function(e) { $('#b1').click(function (){ x=2; }); if(x == 2) $('#t2').hide (); }); </script> Проблема в том, что оператор if не видит присвоенного значения x=2 вне функции .click(function(){}); Подскажите, плиз, что изменить чтобы значение присвоенное переменой было видно везде. Заранее спасибо. |
Если вы потом хотите свое x использовать на другой странице, то 2 надо записывать в cookie, и на другой странице уже читать из этой cookie. А ваша переменная, как и любая другая, только для одной страницы существует, своя. Глобальных переменных такого плана нет.
|
Гео_zen, все работает...при клике по элементу #b1 переменная x получает значение 2
если вам требуется использовать данную переменную на других страницах, то используйте cookie, localStorage или еще что нибудь, для хранения ее значения |
Цитата:
|
Цитата:
|
Ещё один глупый вопрос -
если все страницы документа находятся на одной (шаблон мобильного приложения JQuery mobile в Dreamweaver) и описаны в одном файле index.html то значения переменной так же необходимом передавать, чтобы на последний странице вывести определённый результат в зависимости от действий пользователя на предыдущих страницах? :-? Т.е. в переменной суммируются значения при клике по объектам на первых 3-ёх страницах, а на последней в зависимости от значения этой переменной выдается результат. Как передать значение этой переменной на всех 4-ёх страницах, с учётом вышесказанного? :-? |
Не знаю, что это за шаблон мобильного приложения. Но, если index.html не перезагружается за все шаги вплоть до последней страницы, и там просто меняется скриптом контент в зависимости от страницы, то никаких куков не нужно.
|
Структура шаблона такая + то что я написал:
<!DOCTYPE html> <html> <head> //подключение библиотек не пишу тут <scpirt> $(document).ready(function(e) { $('#b1').click(function (){ localStorage.setItem('key', '3'); }); var item = localStorage.getItem('key'); if(item == 3) $('#t2').hide (); }); </script> </head> <div data-role="page" id="page"> <div data-role="content"> <p> <a href="#page2" data-role="button" id='b1'> </a> </p> </div> </div> <div data-role="page" id="page2"> <div data-role="content"> <p><img src="text.jpg" width="299" height="73" id="t1"></p> <p><img src="text1.jpg" name="t2" width="303" height="73" </div> </div> </body> </html> Потом это перегоняется в .apk файл. В Chrome localstorage работает корректно, а вот в android эмуляторе и в конечном apk - нет :-? Если делать без localstorage то и в Chrome оператор if уже не видит значение переменной, которая была присвоена по клику на 1-ой странице.... Может быть вы знаете, какой лучше применить метод хранения переменных, если конечный продукт это .apk файл, и просматриваться будет не в браузере? |
Цитата:
Сформулирую её ещё раз - Есть страница на HTML, CSS и Javascript (часть будущего нативного android приложения - .apk файл) Выглядит так: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <link href="jquery-mobile/jquery.mobile-1.0a3.min.css" rel="stylesheet" type="text/css"/> <script src="jquery-mobile/jquery-1.5.min.js" type="text/javascript"></script> <script src="jquery-mobile/jquery.mobile-1.0a3.min.js" type="text/javascript"></script> <script src="/cordova.js" type="text/javascript"></script> <script type="text/livescript"> </head> <body> <div data-role="page" id="page1"> <div data-role="content"> <p> <a href="#page2" data-role="button" id='b1'> </a></p> <p> <a href="#page2" data-role="button" id='b2'> </a></p> <div data-role="page" id="page2" > <div data-role="content"> <p><img src="text.jpg" width="299" height="73" id="t1"></p> <p><img src="text1.jpg" width="303" height="73" id="t2"></p> </div> </body> </html> Задача - написать javascript код, который по клику по кнопку #b1 на странице 1, присвоит переменной x определённое значение, например 3. При переходе на страницу 2, если x=3 нужно показать text1 , если не равно то показать text2. Примечание: Приложение будет работать не под браузер, а как родное (.apk файл) . |
Часовой пояс GMT +3, время: 16:45. |