Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.06.2013, 18:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от mta88
ну почему сразу китайского
это у топикстартера много повторений, а NeoN только один switch добавил
Потому что в этом свиче одни повторения. Только идентификаторы и цифры разные. Неужели нет других способов сопоставить пары id - индекс?
Я пока еще молчу про функцию change.
Ответить с цитированием
  #12 (permalink)  
Старый 12.06.2013, 18:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
Можно проще:
Можно еще проще))

var hash = window.location.hash.substring(1);
var map = {
    video: 1,
    music: 2,
    games: 3,
    converse: 4,
    portal: 5,
    services: 6,
    books: 7,
    vkchat: 8
};

if (hash in map) {
    change(map[hash]);


А вобще - херня это все. Почему бы не дать айдишники блокам и не париться? Гемор себе на жопу ищете..
Ответить с цитированием
  #13 (permalink)  
Старый 12.06.2013, 18:35
Новичок на форуме
Отправить личное сообщение для infernorays Посмотреть профиль Найти все сообщения от infernorays
 
Регистрация: 12.06.2013
Сообщений: 4

Ruslan_xDD,
Боже ребята , это просто прелесть... неужели это так просто...
Всё учу JS, (просто как-то не очень нужно было)

Всем спасибо..
Ответить с цитированием
  #14 (permalink)  
Старый 12.06.2013, 18:38
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от danik.js
А вобще - херня это все. Почему бы не дать айдишники блокам и не париться? Гемор себе на жопу ищете..
Сообщение от infernorays
Всем привет, Я НУБ


Вообще, если делать по человечески, то делать не через якорь.

http://site.com/?section=music
change('<?=htmlspecialchars($_GET['section'])?>');


А при клике на блок менять адрес:
<div class="blocks">
   <div id="music">Музыка</div>
   <div id="portal">Портал</div>
</div>

$('.blocks > div').click(function()
{
   history.pushState(0, 0, '/?'+$(this).attr('id'));
});
Ответить с цитированием
  #15 (permalink)  
Старый 12.06.2013, 19:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
Вообще, если делать по человечески, то делать не через якорь.
Это почему? Чем плох якорь? не забываем про IE.
Ответить с цитированием
  #16 (permalink)  
Старый 12.06.2013, 19:18
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от danik.js
Это почему? Чем плох якорь? не забываем про IE.
Ну лично я считаю, что якорь нужен чисто для прокручивания страниц к нужным блокам с указаным в якоре id, не более того. Особенно, если от якоря зависит контент страницы - яндекс и гугл боты точно запутаются.
Ответить с цитированием
  #17 (permalink)  
Старый 12.06.2013, 19:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
Особенно, если от якоря зависит контент страницы - яндекс и гугл боты точно запутаются
От того что по разным url'ам, как у тебя в примере, находится одинаковый контент они еще больше запутаются ))

В случае с якорем страница одна. А учитывая существование IE то нам так и или иначе придется делать якорную навигацию.

Сообщение от Ruslan_xDD
Ну лично я считаю, что якорь нужен чисто для прокручивания страниц к нужным блокам с указаным в якоре id
Ну это и есть своего рода "прокрутка" к указанному блоку.
Ответить с цитированием
  #18 (permalink)  
Старый 12.06.2013, 19:30
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, ну можно сделать нормальные отдельные страницы и если поддерживается history API, то аяксом выдёргивать содержимое страницы, а если не поддерживается, то переходить по этой ссылке. Например:

$('a').click(function()
{
   var a = $(this).attr('href');
   if(!!(window.history && history.pushState && a))
   {
      $('body').load(a+' body');
      history.pushState(0, 0, a);
      return false;
   }
   else document.location = a;
});

Последний раз редактировалось ruslan_mart, 12.06.2013 в 19:33.
Ответить с цитированием
  #19 (permalink)  
Старый 12.06.2013, 19:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ruslan_xDD, это уже совсем другая песня.
Несколько вопросов по коду:
1) зачем двойное отрицание в условии
2) зачем проверка window.history
3) зачем вешать обработчик в случае когда нету history.pushState
4) какой профит в подгрузке страницы целиком?
5) че за нули в вызове pushState?
Ответить с цитированием
  #20 (permalink)  
Старый 12.06.2013, 19:56
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от danik.js
зачем двойное отрицание в условии
Сообщение от danik.js
2) зачем проверка window.history
Сообщение от danik.js
5) че за нули в вызове pushState?
Да кто его знает Тут так написано: http://javascript.ru/blog/pharrell/vvedenie-history-API

Сообщение от danik.js
зачем вешать обработчик в случае когда нету history.pushState
Ну это я так, для теста прикинул, можно конечно проверять наличие history API и если он есть, то вешать события на ссылки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Как добавить класс к нужному элементу при наведении на определеные ссылки? crazygangster77 Events/DOM/Window 3 05.06.2013 02:19
как сделать что бы при открытии страницы сразу открылось большое фото oksanaweb Общие вопросы Javascript 1 05.06.2013 02:17
Переход по ссылке и выполнение скрипта AlexMak Общие вопросы Javascript 10 27.12.2008 14:42
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 17:12