Обработка при нажатии на ссылку
Есть страница run.php. На ней имеется ряд ссылок.
<a href="" id="d1">1</a> <a href="" id="d2">2</a> <a href="" id="d3">3</a> <a href="" id="d4">4</a> Ссылки открывают эту же страницу, через скрипт, который берет инфу с другой страницы $( function ready() { $('.all').load( "all.php #infa2"); $('#d1').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa1");}); $('#d2').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa2");} ); $('#d3').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa3");} ); $('#d4').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa4");} ); });//END При перезагрузке страницы нужно заново нажимать на эти ссылки Как реализовать при перезагрузке что бы выводилась последняя нажатая ссылка? |
Цитата:
И переписать таки сей говнокод. ;) |
Цитата:
С говнокодом - согласен |
Цитата:
Попытка №1 http://htmlbook.ru/html5/storage http://ruseller.com/lessons.php?id=593 |
Цитата:
|
Ну на сколько я понял, то при клике по первой ссылке будет записываться куки таким образом
$('#d1').click(function (eventObject) {document.cookie = "1"; var one = get_cookie ( "1" ); eventObject.preventDefault(); $('.all').load("all.php #infa1"); }); А вот как потом вывести нужную? |
Цитата:
|
document.cookie = "1"; - это означает установку временной куки, которая не будет сохраняться в браузере, то есть ушли со страницы и кука умерла.
|
Sn9, по ссылкам, что я дал выше, все описано. Как "записать"... Как "прочитать"...
Но даже серверным языком это можно решить. Например используя возможности сессии... |
Цитата:
http://javascript.ru/forum/jquery/55...tml#post370808 |
Цитата:
<a href="" id="d1">ПЕРВАЯ</a> <script type='text/javascript'> $(function() { $('#d1').click(function (eventObject) { //при клике на ссылку eventObject.preventDefault(); $('.all').load("all.php #infa1"); var one = "$('.all').load( "all.php #infa1")"; //запишется в переменную one текст localStorage.setItem("all", one); //запишется в localStorage ключ all со значением из one }); var oneL = localStorage.getItem("all"); //возмется ключ all и присвоется в oneL alert(oneL); //должно вывести что находится в oneL }); </script> Или подскажите как правильно заэкранировать в 8ой строке |
Сделал так, по логике должно при клике на первую ссылку вместо oneL выводиться строка которую я записал в локалсторадж после перезагрузки страницы, но почему то не выводит, хотя если через alert пробовать, то выводит строку
<a href="" id="d1">один</a> <a href="" id="d2">два</a> <a href="" id="d3">три</a> <a href="" id="d4">четыре</a> <script type='text/javascript'> $(function one() { $('#d1').click(function (eventObject) { //при клике на ссылку eventObject.preventDefault(); $('.all').load("all.php #infa1"); var one = ' $(\'.all\').load( "all.php #infa1"); '; //запишется в переменную one текст localStorage.setItem("one", one); //запишется в localStorage ключ all со значением из one }); var oneL = localStorage.getItem("one"); $( function ready() { oneL; $('#d1').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa1");} ); $('#d2').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa2");} ); $('#d3').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa3");} ); $('#d4').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa4");} ); });//END }); </script> <div class="all"></div> |
Цитата:
Так вот понятно будет? <!DOCTYPE html> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' /> <script src='http://code.jquery.com/jquery-latest.js'></script> <!-- <script src="https://code.angularjs.org/1.3.9/angular.min.js"></script> <script src="https://code.angularjs.org/1.3.9/angular-route.js"></script> <link rel='stylesheet type=text/css href=tmp.css' /> <link rel="stylesheet/less" type="text/css" href="style.less"> <script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script> --> <style type='text/css'> </style> <script type='text/javascript'> $(function(){ var url=localStorage.getItem("url")||"all.php"; $('#info').text(url); $('.test').click(function() { var url="all.php #infa"+$(this).text(); $('#info').text(url); localStorage.setItem("url", url); }); }); </script> </head> <body> <a href="" id="d1" class='test'>1</a> <a href="" id="d2" class='test'>2</a> <a href="" id="d3" class='test'>3</a> <a href="" id="d4" class='test'>4</a> <div id="info"></div> </body> </html> |
Цитата:
Но теперь возник еще один вопрос, я когда меняю текст внутри href, то сразу всё ломается. Есть какой то способ изменить текст на нужный? |
Цитата:
|
НУ смотрите сами - значение переданного это номер, и он же определяет сообщение, ну так выгоднее сразу
$_SESSION['info'] = $_GET['info']; и echo $message[$_GET['info']]; |
Ну так в этом случае ваш пример явно неудачный, ибо зачем же switch, если case 1 при $_SESSION['info'] = 1? Кроме того, если значения произвольные, то каким образом выкрутиться и в switch, ведь и для нее это будет проблемой.
|
Ну так извините, и кличи массива могут иметь имена произвольные. Суть не в этом. Что в вашем примере? А в нем явно ожидаемые значения, которые и проверяются, то есть 1, 2, 3. Вопрос встал о том, что если значения изменяться или дополняться (я правильно понял?), то case ну как волшебник, сам их подставить что-ли? Понятно что нет, и что их придется писать ручками, ну и какая разница, если я добавлю в массив ключи новые?
Что switch, что ключи в массиве, это приемлемо только для ожидаемых фиксированных значений. Удобство чего-то там разместить, это уже прострация, мы говорим о простом, что было показано, и для него switch, это лишнее. Что касается default, то в случае использования массива, потребуется проверка - если есть ключ, исполняем, иначе по умолчанию. |
Цитата:
|
Часовой пояс GMT +3, время: 18:53. |