Вопросы от tion
|
|
|
2013-02-28Дата: Четверг, 28.02.2013, 13:01 | Сообщение # 1 |
Рядовой
Группа: Проверенные
Статус: Offline
|
Сделал менюшку на сайте вкладками и вроде все отлично, но при переходе по ссылкам из вкладки и, соответственно, обновлении страницы менюшка сбрасывается на первую вкладку. Как мне сделать чтобы оставалось на текущей вкладке? Страница с меню это пока черновой вариант такая шапка только на одной странице сайта. Можно перейти на вкладку любую и обновить страницу для наглядности. И извиняюсь за пложении тем, впредь обещаю писать только сюда)
| | |
|
|
2013-03-02Дата: Суббота, 02.03.2013, 07:57 | Сообщение # 2 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, Сделал менюшку на сайте вкладками и вроде все отлично, но при переходе по ссылкам из вкладки и, соответственно, обновлении страницы менюшка сбрасывается на первую вкладку. Как мне сделать чтобы оставалось на текущей вкладке? У вас активная вкладка имеет ID == current ... вот с этого и начинайте. То есть на страницах тех вкладок куда они ссылаются должен быть прописан ID. Либо в шаблоне либо скриптом. Скриптом - проверять не является ли станица страницей с текущей вкладкой и если является - назначать ID.
| | |
|
|
2013-03-04Дата: Понедельник, 04.03.2013, 10:22 | Сообщение # 3 |
Рядовой
Группа: Проверенные
Статус: Offline
|
А есть вариант чтобы скрипт не перевызывался при переходе по ссылкам? Проще говоря чтобы не перезагружалась часть страницы, вот эта Добавлено (04.03.2013, 10:22) --------------------------------------------- еще почему то скрипт не срабатывает если его вставлять в head..
| | |
|
|
2013-03-04Дата: Понедельник, 04.03.2013, 11:22 | Сообщение # 4 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, А есть вариант чтобы скрипт не перевызывался при переходе по ссылкам? Проще говоря чтобы не перезагружалась часть страницы, вот эта Да. Это называется аякс-навигация - когда нужная часть контента просто подгружается в текущую страницу по какому либо событию, например клике по ссылке и тп
еще почему то скрипт не срабатывает если его вставлять в head.. Потому что блоков еще нету когда скрит инициализируется, они просто не загрузились еще. Для этого используют событие $(document).ready и в него упаковывают весь скрипт. Что бы на момент инициализации скрипта элементы с которыми он проводит те или иные действия уже были загружены.
| | |
|
|
2013-03-04Дата: Понедельник, 04.03.2013, 13:17 | Сообщение # 5 |
Рядовой
Группа: Проверенные
Статус: Offline
|
$(document).ready и в него упаковывают весь скрипт. Хм.. не выходит.. скрипт перестает работать. в чем ошибка? Код $(document).ready (function resetTabs(){ $("#content div").hide(); $("#tabs a").attr("id",""); }) var myUrl = window.location.href; var myUrlTab = myUrl.substring(myUrl.indexOf("#")); var myUrlTabName = myUrlTab.substring(0,4);
$(document).ready (function sec(){ $("#content div").hide(); $("#tabs li:first a").attr("id","current"); $("#content div:first").fadeIn(); $("#tabs a").on("click",function(e) { e.preventDefault(); if ($(this).attr("id") == "current"){ return } else{ resetTabs(); $(this).attr("id","current"); $($(this).attr('name')).fadeIn(); } });
for (i = 1; i <= $("#tabs li").length; i++) { if (myUrlTab == myUrlTabName + i) { resetTabs(); $("a[name='"+myUrlTab+"']").attr("id","current"); $(myUrlTab).fadeIn(); } } })() Добавлено (04.03.2013, 13:17) ---------------------------------------------
аякс-навигация - когда нужная часть контента просто подгружается в текущую страницу А если мне надо наоборот, чтобы часть контента оставалась неизменной? Или например чтобы скрипт инициализировался только при переходе по вкладкам, а при переходе по ссылкам во вкладках не инициализировался. Как то так)
| | |
|
|
2013-03-04Дата: Понедельник, 04.03.2013, 17:25 | Сообщение # 6 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, Цитата (tion) м.. не выходит.. скрипт перестает работать. в чем ошибка? Ошибка в синтаксисе. У функций, как и у всего, есть свои правила написания. http://api.jquery.com/ready/
Цитата (tion) А если мне надо наоборот, чтобы часть контента оставалась неизменной? Ифрейм.
Цитата (tion) Или например чтобы скрипт инициализировался только при переходе по вкладкам, а при переходе по ссылкам во вкладках не инициализировался. Как то так) То, тогда измените скрипт так, как вам нужно.
Но, честно говоря, если проблема только в том что:Цитата (tion) но при переходе по ссылкам из вкладки и, соответственно, обновлении страницы менюшка сбрасывается на первую вкладку. Как мне сделать чтобы оставалось на текущей вкладке? вы городите огород из граблей.
В итоге все равно проще и быстрее будет сделать правильно, а именно: Цитата (likbezz) У вас активная вкладка имеет ID == current ... вот с этого и начинайте. То есть на страницах тех вкладок куда они ссылаются должен быть прописан ID. Либо в шаблоне либо скриптом. Скриптом - проверять не является ли станица страницей с текущей вкладкой и если является - назначать ID. ...
| | |
|
|
2013-03-05Дата: Вторник, 05.03.2013, 08:20 | Сообщение # 7 |
Рядовой
Группа: Проверенные
Статус: Offline
|
на страницах тех вкладок куда они ссылаются должен быть прописан ID. я вот этого не понимаю. получается каждая страница на которую ссылается меню должна иметь ID == current?? куда его писать то? чему присваивать? а косяков от этого по сайту не пойдет?
| | |
|
|
2013-03-05Дата: Вторник, 05.03.2013, 09:28 | Сообщение # 8 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, я вот этого не понимаю. получается каждая страница на которую ссылается меню должна иметь ID == current?? куда его писать то? чему присваивать? а косяков от этого по сайту не пойдет? Ну не к странице а к вкладке... Цитата (Code) <ul id="tabs"> <li><a id="" href="#" name="#tab1">Главная</a></li> <li><a id="current" href="#" name="#tab2">О школе</a></li> <li><a id="" href="#" name="#tab3">Учителям</a></li> <li><a id="" href="#" name="#tab4">Ученикам</a></li> <li><a id="" href="#" name="#tab5">Родителям</a></li> <li><a id="" href="#" name="#tab6">Электронная учительская</a></li> </ul> За вид вкладки - ну типа того что она вроде как активна, отвечает ID current так вот на тех страницах где нужно руками прописать к нужной вкладке этот ID.
У вас же меню на всех страницах? ну вот. Ну или как вариант, куками запоминать текущую открытую вкладку (писать куку на каждом смене вкладки). Это даже, наверное, правильнее будет.. проще во всяком случае.
По теме, на всякий: Плавное сворачивание / разворачивание блока + куки
| | |
|
|
2013-03-05Дата: Вторник, 05.03.2013, 10:19 | Сообщение # 9 |
Рядовой
Группа: Проверенные
Статус: Offline
|
на тех страницах где нужно руками прописать к нужной вкладке этот ID. У вас же меню на всех страницах? это беда) у меня вся шапка в блоке $GLOBAL_AHEADER$, и я его планировал вставлять в шаблоны. Я понял теперь что Вы имеете ввиду про ID == current. буду пробовать с куками вариант
| | |
|
|
2013-03-05Дата: Вторник, 05.03.2013, 10:28 | Сообщение # 10 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, это беда) у меня вся шапка в блоке $GLOBAL_AHEADER$ Про условные операторы не слышали, конечно? Каждая страница имеет свой уникальный $PAGE_ID$ который можно и проверить.
буду пробовать с куками вариант Ну да, это проще конечно, да и гибче немного. Просто вместе с открытием пишите куку с именем вкладки, а при загрузке проверяйте какая кука и добавляйте ID к нужной-там вкладок-то всего 4 штуки...
| | |
|
|
2013-03-06Дата: Среда, 06.03.2013, 10:39 | Сообщение # 11 |
Рядовой
Группа: Проверенные
Статус: Offline
|
<li><a id="current" href="#" name="#tab2">О школе</a></li> если делать так то будут только вкладки оставаться, а содержимое #content сбрасываться на содержимое первой вкладки)
не такой уж и уникальный ) например у блока форум и у блока гостевая книга $PAGE_ID$ == "main", лучше использовать $URI_ID$ Добавлено (06.03.2013, 10:39) --------------------------------------------- а где же в синтаксисе все таки ошибка у меня когда я запихиваю скрипт в $(document).ready??? хотелось бы чтобы он из шапки инициализировался, а не в каждый шаблон его втыкать
| | |
|
|
2013-03-06Дата: Среда, 06.03.2013, 10:48 | Сообщение # 12 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, не такой уж и уникальный ) Не то написал ) $URI_ID$ - уникальный.
а где же в синтаксисе все таки ошибка у меня когда я запихиваю скрипт в $(document).ready??? как минимум вот тут не хватает скобок ... $(document).ready (function resetTabs(){ Должно: Цитата (Code) $(document).ready(function(){ resetTabs(){ - а если глянуть далее, наверняка и закрывающих тоже нет..
| | |
|
|
2013-03-11Дата: Понедельник, 11.03.2013, 12:02 | Сообщение # 13 |
Рядовой
Группа: Проверенные
Статус: Offline
|
$(document).ready(function(){ resetTabs(){ а почему так то? я же описываю функцию resettabs(), пишу че она делает, потом по ходу скрипта вызываю еще раз ее.
| | |
|
|
2013-03-11Дата: Понедельник, 11.03.2013, 12:05 | Сообщение # 14 |
Аццкий кодер
Группа: Администраторы
Статус: Unknown
|
tion, http://api.jquery.com/ready/
Код $(document).ready(handler) $(handler)
я же описываю функцию resettabs(), пишу че она делает, потом по ходу скрипта вызываю еще раз ее. Задача стоит какая? Вызывать её только при готовности DOM.
| | |
|
|
2013-03-12Дата: Вторник, 12.03.2013, 10:40 | Сообщение # 15 |
Рядовой
Группа: Проверенные
Статус: Offline
|
в общем сидел ковырлся и в итоге: <a id="current" href="#" name="#tab2">О школе</a> так не получится потому что остается вкладка current и первая вкладка подсвеченной как активные, если по этой аналогии делать то присваивать id == current надо элементу div который в себе несет content то есть все содержимое вкладки, но так не получается, все равно сбрасывается на содержимое первой вкладки. $(document).ready(handler) упаковывал я упаковывал, а скрипт все равно не работает) но это уже черт с ним, сделал некрасиво зато работает (впихал скрипт после </body>).
остается один вариант с куками) но я мало чего понимаю в JS, могу разобраться только с уже данным примером. Да и в куки если писать то тоже ведь надо отталкиваться от id == current? если да то возвращаемся к началу сообщения и приходим в тупик)))Добавлено (12.03.2013, 10:40) --------------------------------------------- как то бы все таки сделать чтобы верхушка с меню была статичной.. и подгружалась только часть с информацией по ссылкам.. но AJAX для меня тем более лес густой -_-"
| | |
|