Открытие вкладок/табов с другой страницы
Добрый день! Не силен в js, но встал вопрос.
Есть страница с регистрацией site.ru/registration и на ней имеется 2 вкладки, Частное лицо и Организация. При открытии страницы - всегда активна "Частное лицо", и далее при нажатии на "Организация" - она открывается и закрывается "Частное лицо". Казалось бы на странице всё верно и хорошо работает...но вот встал вопрос, как сделать так чтобы при клике с другой стрницы(например с главной) открывалась сразу же вкладка "Организация". А при обычном переходе на страницу с регистрацией - открывалась так же "Частное лицо" В песочнице сделал пример. http://learn.javascript.ru/play/YMhgqb |
Закладку передавайте через урл и все. Типовая задача для закладок. Ну по-вашему табов-шмабов.
www.example.com/reg#company www.example.com/reg#person |
Цитата:
Подскажите пожалуйста как это сделать конкретно на моём примере. |
Ну у вас же есть место куда юзер тычет чтобы переключить эти табы - там есть функция, правильно? Вам только надо дописать где-нить в load еще метод, который проверит хэш и, если есть проверит есть ли такой на странице, а если есть - то щелкнет его и все.
|
Цитата:
Вот сюда тычат? $('#js_regForm1').toggleClass('hide'); А теперь если без проверок сделать вот так $(location.hash).toggleClass('hide'); что будет если в урле вот так www.example.com#js_regForm1 |
Цитата:
Помогите довести до финального конца на моём примере. Вот пример я сделал http://learn.javascript.ru/play/YMhgqb <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.js"></script> <style> .hide {display: none;} </style> <script type="text/javascript"> function toggleRegForm(e) { $('#js_regForm1').toggleClass('hide'); $('#js_regForm2').toggleClass('hide'); var tmp = e.innerHTML; e.innerHTML = e.rel; e.rel = tmp; } </script> <div id="js_regForm1"> <!-- person --> <div class="clear"></div> <div class="tab3 tab3-active"><div>Частное лицо</div></div> <div class="tab3"><div><a href="#" onclick="toggleRegForm(this);return false;" rel="Частное лицо">Организация</a></div></div> Частное лицо успешно открыто </div> <div id="js_regForm2" class="hide" > <!-- organization --> <div class="clear"></div> <div class="tab3"><div><a href="#" onclick="toggleRegForm(this);return false;" rel="Частное лицо">Частное лицо</a></div></div> <div class="tab3 tab3-active"><div>Организация успешно открыто</div></div> </div> |
То есть назовите по-человечески эти якоря - js_regForm1 - и прямо их постите в хэш и берите прямо оттуда.
$('#reg_company').toggleClass('hide'); $('#reg_person').toggleClass('hide'); потом в фунции которая открыла табу location.hash = this.id; // не помню, кажется решетку еще надо вручную добавлять |
Цитата:
Блин, ну это просто же. Вы вообще не понимаете что такое закладка? Это раньше - кусок документа на который можно было сослаться из документа. Ну вот, чтобы отобразить этот факт закладки отображались в урле через решетку. Соответственно если если такой урл сохранить, а потом открыть - то браузер сразу мотает до закладки - без скриптов вообще, сам. Но,поскольку у вас они занимают одно место, то нужен скрипт который покажет ту, на которую надо мотать из хэша урла. <script type="text/javascript"> // подразумеваем что хэш (за решеткой) есть всегда, и правильный $(location.hash).toggleClass('hide'); </script> Все. Ну то есть теперь надо смотреть что там скроется, что покажется, логику эту ... это сами, это просто. |
Понял что ничего не понял)))))
Понял что скрипт отлавливает хэш, и далее надо прописать логику. А до логики не дорос я никак |
Во-первых 2 таба не имеют значения, их может быть 22 или 222. То есть сразу делайте нормально. То есть должен быть контейнер этих табов. На этот контейнер вешается апликуха в 30 строк и все пашет без вашего участия и без всяких там инстансей.
Кстати, есть такой ивент https://developer.mozilla.org/en-US/...s.onhashchange Я не проверял, ибо "щетаю" табы уебищным изобретением. Они меня на винде за...бали так, что на вебе их никогда сам делать не буду, только под пытками. Но если ивент работает относительно у всех - то вам только хэш закидывать в локейшн и написать метод который будет переключать. Тогда станет эквипенисуально кто поменял хэш - скрипт или юзер. Впрочем есть подозрение что со скрипта может не сработать или придется поджигать вручную. |
Часовой пояс GMT +3, время: 12:31. |