12.06.2013, 18:21
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от mta88
|
ну почему сразу китайского
это у топикстартера много повторений, а NeoN только один switch добавил
|
Потому что в этом свиче одни повторения. Только идентификаторы и цифры разные. Неужели нет других способов сопоставить пары id - индекс?
Я пока еще молчу про функцию change.
|
|
12.06.2013, 18:27
|
|
Профессор
|
|
Регистрация: 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]);
А вобще - херня это все. Почему бы не дать айдишники блокам и не париться? Гемор себе на жопу ищете..
|
|
12.06.2013, 18:35
|
Новичок на форуме
|
|
Регистрация: 12.06.2013
Сообщений: 4
|
|
Ruslan_xDD,
Боже ребята , это просто прелесть... неужели это так просто...
Всё учу JS, (просто как-то не очень нужно было)
Всем спасибо..
|
|
12.06.2013, 18:38
|
|
Профессор
|
|
Регистрация: 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'));
});
|
|
12.06.2013, 19:12
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от Ruslan_xDD
|
Вообще, если делать по человечески, то делать не через якорь.
|
Это почему? Чем плох якорь? не забываем про IE.
|
|
12.06.2013, 19:18
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Сообщение от danik.js
|
Это почему? Чем плох якорь? не забываем про IE.
|
Ну лично я считаю, что якорь нужен чисто для прокручивания страниц к нужным блокам с указаным в якоре id, не более того. Особенно, если от якоря зависит контент страницы - яндекс и гугл боты точно запутаются.
|
|
12.06.2013, 19:23
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от Ruslan_xDD
|
Особенно, если от якоря зависит контент страницы - яндекс и гугл боты точно запутаются
|
От того что по разным url'ам, как у тебя в примере, находится одинаковый контент они еще больше запутаются ))
В случае с якорем страница одна. А учитывая существование IE то нам так и или иначе придется делать якорную навигацию.
Сообщение от Ruslan_xDD
|
Ну лично я считаю, что якорь нужен чисто для прокручивания страниц к нужным блокам с указаным в якоре id
|
Ну это и есть своего рода "прокрутка" к указанному блоку.
|
|
12.06.2013, 19:30
|
|
Профессор
|
|
Регистрация: 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.
|
|
12.06.2013, 19:46
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Ruslan_xDD, это уже совсем другая песня.
Несколько вопросов по коду:
1) зачем двойное отрицание в условии
2) зачем проверка window.history
3) зачем вешать обработчик в случае когда нету history.pushState
4) какой профит в подгрузке страницы целиком?
5) че за нули в вызове pushState?
|
|
12.06.2013, 19:56
|
|
Профессор
|
|
Регистрация: 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 и если он есть, то вешать события на ссылки.
|
|
|
|