Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.10.2014, 12:03
Новичок на форуме
Отправить личное сообщение для siszone Посмотреть профиль Найти все сообщения от siszone
 
Регистрация: 09.10.2014
Сообщений: 4

Открытие вкладок/табов с другой страницы
Добрый день! Не силен в js, но встал вопрос.
Есть страница с регистрацией site.ru/registration
и на ней имеется 2 вкладки, Частное лицо и Организация. При открытии страницы - всегда активна "Частное лицо", и далее при нажатии на "Организация" - она открывается и закрывается "Частное лицо".
Казалось бы на странице всё верно и хорошо работает...но вот встал вопрос, как сделать так чтобы при клике с другой стрницы(например с главной) открывалась сразу же вкладка "Организация". А при обычном переходе на страницу с регистрацией - открывалась так же "Частное лицо"

В песочнице сделал пример. http://learn.javascript.ru/play/YMhgqb
Ответить с цитированием
  #2 (permalink)  
Старый 09.10.2014, 12:05
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Закладку передавайте через урл и все. Типовая задача для закладок. Ну по-вашему табов-шмабов.

www.example.com/reg#company
www.example.com/reg#person
Ответить с цитированием
  #3 (permalink)  
Старый 09.10.2014, 12:13
Новичок на форуме
Отправить личное сообщение для siszone Посмотреть профиль Найти все сообщения от siszone
 
Регистрация: 09.10.2014
Сообщений: 4

Сообщение от kostyanet Посмотреть сообщение
Закладку передавайте через урл и все. Типовая задача для закладок. Ну по-вашему табов-шмабов.

www.example.com/reg#company
www.example.com/reg#person
Пробовал, но не получается.

Подскажите пожалуйста как это сделать конкретно на моём примере.
Ответить с цитированием
  #4 (permalink)  
Старый 09.10.2014, 12:38
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Ну у вас же есть место куда юзер тычет чтобы переключить эти табы - там есть функция, правильно? Вам только надо дописать где-нить в load еще метод, который проверит хэш и, если есть проверит есть ли такой на странице, а если есть - то щелкнет его и все.
Ответить с цитированием
  #5 (permalink)  
Старый 09.10.2014, 12:42
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от siszone
конкретно на моём примере.
На вашем примере нельзя, надо на своем. Туторная страница нихочит показывать location.hash, не знаю почему.

Вот сюда тычат?

$('#js_regForm1').toggleClass('hide');

А теперь если без проверок сделать вот так

$(location.hash).toggleClass('hide');

что будет если в урле вот так www.example.com#js_regForm1

Последний раз редактировалось kostyanet, 09.10.2014 в 12:45.
Ответить с цитированием
  #6 (permalink)  
Старый 09.10.2014, 12:43
Новичок на форуме
Отправить личное сообщение для siszone Посмотреть профиль Найти все сообщения от siszone
 
Регистрация: 09.10.2014
Сообщений: 4

Сообщение от kostyanet Посмотреть сообщение
Ну у вас же есть место куда юзер тычет чтобы переключить эти табы - там есть функция, правильно? Вам только надо дописать где-нить в load еще метод, который проверит хэш и, если есть проверит есть ли такой на странице, а если есть - то щелкнет его и все.
Место есть, но вот есть ли функция незнаю. Не понимаю вообще js. Какой load, куда его
Помогите довести до финального конца на моём примере.

Вот пример я сделал 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>
Ответить с цитированием
  #7 (permalink)  
Старый 09.10.2014, 12:47
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

То есть назовите по-человечески эти якоря - js_regForm1 - и прямо их постите в хэш и берите прямо оттуда.

$('#reg_company').toggleClass('hide');
$('#reg_person').toggleClass('hide');

потом в фунции которая открыла табу

location.hash = this.id; // не помню, кажется решетку еще надо вручную добавлять
Ответить с цитированием
  #8 (permalink)  
Старый 09.10.2014, 12:48
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от siszone
Помогите довести до финального конца на моём примере.
Ну нет там хэша в песочнице этой, птыть..

Блин, ну это просто же. Вы вообще не понимаете что такое закладка? Это раньше - кусок документа на который можно было сослаться из документа. Ну вот, чтобы отобразить этот факт закладки отображались в урле через решетку. Соответственно если если такой урл сохранить, а потом открыть - то браузер сразу мотает до закладки - без скриптов вообще, сам.

Но,поскольку у вас они занимают одно место, то нужен скрипт который покажет ту, на которую надо мотать из хэша урла.

<script type="text/javascript">
// подразумеваем что хэш (за решеткой) есть всегда, и правильный
$(location.hash).toggleClass('hide');
</script>

Все. Ну то есть теперь надо смотреть что там скроется, что покажется, логику эту ... это сами, это просто.

Последний раз редактировалось kostyanet, 09.10.2014 в 12:54.
Ответить с цитированием
  #9 (permalink)  
Старый 09.10.2014, 13:39
Новичок на форуме
Отправить личное сообщение для siszone Посмотреть профиль Найти все сообщения от siszone
 
Регистрация: 09.10.2014
Сообщений: 4

Понял что ничего не понял)))))
Понял что скрипт отлавливает хэш, и далее надо прописать логику. А до логики не дорос я никак
Ответить с цитированием
  #10 (permalink)  
Старый 09.10.2014, 18:53
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Во-первых 2 таба не имеют значения, их может быть 22 или 222. То есть сразу делайте нормально. То есть должен быть контейнер этих табов. На этот контейнер вешается апликуха в 30 строк и все пашет без вашего участия и без всяких там инстансей.

Кстати, есть такой ивент https://developer.mozilla.org/en-US/...s.onhashchange

Я не проверял, ибо "щетаю" табы уебищным изобретением. Они меня на винде за...бали так, что на вебе их никогда сам делать не буду, только под пытками. Но если ивент работает относительно у всех - то вам только хэш закидывать в локейшн и написать метод который будет переключать. Тогда станет эквипенисуально кто поменял хэш - скрипт или юзер. Впрочем есть подозрение что со скрипта может не сработать или придется поджигать вручную.

Последний раз редактировалось kostyanet, 09.10.2014 в 18:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка в div другой страницы из другой папки Mr29A jQuery 1 12.11.2013 11:08
Как разместить содержимое с другой страницы сайта Phil_F Элементы интерфейса 2 15.07.2013 06:11
Получение данных из другой страницы Vetall Общие вопросы Javascript 5 09.09.2012 13:04
Автоматическое открытие другой страницы в новом окне при загрузке первой yavaa Общие вопросы Javascript 7 07.05.2012 20:34
Загрузить элементы документа с другой страницы alexrussia Events/DOM/Window 10 25.03.2011 10:17