Фильтр по:
  

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Admin, Cибиря4ка, Komoff, Diana  
Скрипты и коды для юкоз - Форум аццкого кодера » Раздел для начинающих » Если вы пришли за помощью, то Вам сюда... » Вопросы от tion (Вопросы от пользователя “tion” все подряд)
Вопросы от tion
Дата: Четверг, 28.02.2013, 13:01 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


Сделал менюшку на сайте вкладками и вроде все отлично, но при переходе по ссылкам из вкладки и, соответственно, обновлении страницы менюшка сбрасывается на первую вкладку. Как мне сделать чтобы оставалось на текущей вкладке?
Страница с меню это пока черновой вариант такая шапка только на одной странице сайта. Можно перейти на вкладку любую и обновить страницу для наглядности.
И извиняюсь за пложении тем, впредь обещаю писать только сюда)


 
Дата: Суббота, 02.03.2013, 07:57 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion, Чт, 28.02.2013, 13:01:18)
Сделал менюшку на сайте вкладками и вроде все отлично, но при переходе по ссылкам из вкладки и, соответственно, обновлении страницы менюшка сбрасывается на первую вкладку. Как мне сделать чтобы оставалось на текущей вкладке?

У вас активная вкладка имеет ID == current ... вот с этого и начинайте.
То есть на страницах тех вкладок куда они ссылаются должен быть прописан ID.
Либо в шаблоне либо скриптом.
Скриптом - проверять не является ли станица страницей с текущей вкладкой и если является - назначать ID.


 
Дата: Понедельник, 04.03.2013, 10:22 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


А есть вариант чтобы скрипт не перевызывался при переходе по ссылкам? Проще говоря чтобы не перезагружалась часть страницы, вот эта

Добавлено (04.03.2013, 10:22)
---------------------------------------------
еще почему то скрипт не срабатывает если его вставлять в head..

 
Дата: Понедельник, 04.03.2013, 11:22 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion, Пн, 04.03.2013, 10:22:39)
А есть вариант чтобы скрипт не перевызывался при переходе по ссылкам? Проще говоря чтобы не перезагружалась часть страницы, вот эта

Да.
Это называется аякс-навигация - когда нужная часть контента просто подгружается в текущую страницу по какому либо событию, например клике по ссылке и тп

Цитата (tion, Пн, 04.03.2013, 10:22:39)
еще почему то скрипт не срабатывает если его вставлять в head..

Потому что блоков еще нету когда скрит инициализируется, они просто не загрузились еще.
Для этого используют событие $(document).ready и в него упаковывают весь скрипт.
Что бы на момент инициализации скрипта элементы с которыми он проводит те или иные действия уже были загружены.


 
Дата: Понедельник, 04.03.2013, 13:17 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


Цитата (likbezz, Пн, 04.03.2013, 10:22:46)
$(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)
---------------------------------------------

Цитата (likbezz, Пн, 04.03.2013, 10:22:46)
аякс-навигация - когда нужная часть контента просто подгружается в текущую страницу

А если мне надо наоборот, чтобы часть контента оставалась неизменной? Или например чтобы скрипт инициализировался только при переходе по вкладкам, а при переходе по ссылкам во вкладках не инициализировался. Как то так)


 
Дата: Понедельник, 04.03.2013, 17:25 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion)
м.. не выходит.. скрипт перестает работать. в чем ошибка?

Ошибка в синтаксисе.
У функций, как и у всего, есть свои правила написания.
http://api.jquery.com/ready/

Цитата (tion)
А если мне надо наоборот, чтобы часть контента оставалась неизменной?

Ифрейм.

Цитата (tion)
Или например чтобы скрипт инициализировался только при переходе по вкладкам, а при переходе по ссылкам во вкладках не инициализировался. Как то так)

То, тогда измените скрипт так, как вам нужно.

Но, честно говоря, если проблема только в том что:
Цитата (tion)
но при переходе по ссылкам из вкладки и, соответственно, обновлении страницы менюшка сбрасывается на первую вкладку. Как мне сделать чтобы оставалось на текущей вкладке?

вы городите огород из граблей.

В итоге все равно проще и быстрее будет сделать правильно, а именно:
Цитата (likbezz)
У вас активная вкладка имеет ID == current ... вот с этого и начинайте.
То есть на страницах тех вкладок куда они ссылаются должен быть прописан ID.
Либо в шаблоне либо скриптом.
Скриптом - проверять не является ли станица страницей с текущей вкладкой и если является - назначать ID.

...


 
Дата: Вторник, 05.03.2013, 08:20 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


Цитата (likbezz, Пн, 04.03.2013, 16:25:53)
на страницах тех вкладок куда они ссылаются должен быть прописан ID.

я вот этого не понимаю. получается каждая страница на которую ссылается меню должна иметь ID == current?? куда его писать то? чему присваивать? а косяков от этого по сайту не пойдет?


 
Дата: Вторник, 05.03.2013, 09:28 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion, Вт, 05.03.2013, 08:20:13)
я вот этого не понимаю. получается каждая страница на которую ссылается меню должна иметь 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.



У вас же меню на всех страницах? ну вот.
Ну или как вариант, куками запоминать текущую открытую вкладку (писать куку на каждом смене вкладки). Это даже, наверное, правильнее будет.. проще во всяком случае.

По теме, на всякий:
Плавное сворачивание / разворачивание блока + куки

Прикрепления: 3761500.png (39.3 Kb)

 
Дата: Вторник, 05.03.2013, 10:19 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


Цитата (likbezz, Вт, 05.03.2013, 08:28:15)
на тех страницах где нужно руками прописать к нужной вкладке этот ID.

Цитата (likbezz, Вт, 05.03.2013, 08:28:15)
У вас же меню на всех страницах?

это беда) у меня вся шапка в блоке $GLOBAL_AHEADER$, и я его планировал вставлять в шаблоны. Я понял теперь что Вы имеете ввиду про ID == current.
буду пробовать с куками вариант


 
Дата: Вторник, 05.03.2013, 10:28 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion, Вт, 05.03.2013, 10:19:06)
это беда) у меня вся шапка в блоке $GLOBAL_AHEADER$

Про условные операторы не слышали, конечно?
Каждая страница имеет свой уникальный $PAGE_ID$ который можно и проверить.

Цитата (tion, Вт, 05.03.2013, 10:19:06)
буду пробовать с куками вариант

Ну да, это проще конечно, да и гибче немного.
Просто вместе с открытием пишите куку с именем вкладки, а при загрузке проверяйте какая кука и добавляйте ID к нужной-там вкладок-то всего 4 штуки...


 
Дата: Среда, 06.03.2013, 10:39 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


Цитата (likbezz, Вт, 05.03.2013, 08:28:15)
<li><a id="current" href="#" name="#tab2">О школе</a></li>

если делать так то будут только вкладки оставаться, а содержимое #content сбрасываться на содержимое первой вкладки)

Цитата (likbezz, Вт, 05.03.2013, 09:28:40)
уникальный $PAGE_ID$

не такой уж и уникальный ) например у блока форум и у блока гостевая книга $PAGE_ID$ == "main", лучше использовать $URI_ID$ wink

Добавлено (06.03.2013, 10:39)
---------------------------------------------
а где же в синтаксисе все таки ошибка у меня когда я запихиваю скрипт в $(document).ready??? хотелось бы чтобы он из шапки инициализировался, а не в каждый шаблон его втыкать

 
Дата: Среда, 06.03.2013, 10:48 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion, Ср, 06.03.2013, 10:39:45)
не такой уж и уникальный )

Не то написал ) $URI_ID$ - уникальный.

Цитата (tion, Ср, 06.03.2013, 10:39:45)
а где же в синтаксисе все таки ошибка у меня когда я запихиваю скрипт в $(document).ready???

как минимум вот тут не хватает скобок ...
Цитата (tion, Пн, 04.03.2013, 13:17:34)
$(document).ready (function resetTabs(){

Должно:
Цитата (Code)
$(document).ready(function(){
resetTabs(){

- а если глянуть далее, наверняка и закрывающих тоже нет..


 
Дата: Понедельник, 11.03.2013, 12:02 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


Цитата (likbezz, Ср, 06.03.2013, 09:48:29)
$(document).ready(function(){
resetTabs(){

а почему так то? я же описываю функцию resettabs(), пишу че она делает, потом по ходу скрипта вызываю еще раз ее.


 
Дата: Понедельник, 11.03.2013, 12:05 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


tion,
Цитата (tion, Пн, 11.03.2013, 12:02:19)
а почему так то?

http://api.jquery.com/ready/

Код
$(document).ready(handler)
$(handler)


Цитата (tion, Пн, 11.03.2013, 12:02:19)
я же описываю функцию resettabs(), пишу че она делает, потом по ходу скрипта вызываю еще раз ее.

Задача стоит какая? Вызывать её только при готовности DOM.


 
Дата: Вторник, 12.03.2013, 10:40 |
tion
Рядовой
Группа: Проверенные
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline


в общем сидел ковырлся и в итоге:
Цитата (tion, Ср, 06.03.2013, 09:39:45)
<a id="current" href="#" name="#tab2">О школе</a>

так не получится потому что остается вкладка current и первая вкладка подсвеченной как активные, если по этой аналогии делать то присваивать id == current надо элементу div который в себе несет content то есть все содержимое вкладки, но так не получается, все равно сбрасывается на содержимое первой вкладки.
Цитата (likbezz, Пн, 11.03.2013, 11:05:31)
$(document).ready(handler)

упаковывал я упаковывал, а скрипт все равно не работает) но это уже черт с ним, сделал некрасиво зато работает (впихал скрипт после </body>).

остается один вариант с куками) но я мало чего понимаю в JS, могу разобраться только с уже данным примером. Да и в куки если писать то тоже ведь надо отталкиваться от id == current? если да то возвращаемся к началу сообщения и приходим в тупик)))

Добавлено (12.03.2013, 10:40)
---------------------------------------------
как то бы все таки сделать чтобы верхушка с меню была статичной.. и подгружалась только часть с информацией по ссылкам.. но AJAX для меня тем более лес густой -_-"

 
Скрипты и коды для юкоз - Форум аццкого кодера » Раздел для начинающих » Если вы пришли за помощью, то Вам сюда... » Вопросы от tion (Вопросы от пользователя “tion” все подряд)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Мобильная версия