Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> доделать скрипт, не могу 
:(
    Опции темы
ReSo
  Дата 16.6.2007, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Код

var choice=new Array('column','theme','last');
function sort_by(n) {
var _i=null;
var _selected=0;

for (i=1;i<=choice.length;i++) 
{
if (_i=document.getElementById(choice[i-1])) 

{
if (i!=n) _i.style.display='none';

else {
_i.style.display='block';
_selected=i;  


}}}}



как заставить его

1) активному в данный момент элементу присваивать id="active"

2) оставлять куки с последним выбором человека.

очень рассчитываю на вашу помощь.
PM MAIL   Вверх
Mymik
Дата 16.6.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



У тебя очень интересный подход к циклам... я еще такого не видел...
Код

var choice=new Array('column','theme','last');
function sort_by(n) 
{
    var _i = null;
    var _selected = 0;
    for (i = 0; i < choice.length; i++) 
    {
        if (_i = document.getElementById(choice[i])) 
        {
            if (i != n) 
                _i.style.display = 'none';
            else {
                _i.style.display = 'block';
                /* Установка нового id у элемента. Только он тогда не будет видел в следующий раз в твоем цикле */
                _i.id = "active";
                /* Установка кука lastSelected */
                document.cookie = 'lastSelected=' + i.id + ';';
            }
        }
    }
}

да, кстати, как я понял, в данный момент активный элемент это и есть n ??? да ??? ну в смысле если он равен "_i" то это типа и есть активный элемент...

Да, еще. При втором проходе в этой функции у тебя будет два одинаковых id... и это приведет к падению системы...

Лучше напиши что конкретно тебе нать... 

Это сообщение отредактировал(а) Mymik - 16.6.2007, 21:12


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
ReSo
Дата 16.6.2007, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Mymik не работает (( 

скрипт не мой, более того я в js не силён вообще но очень понадобился данный скриптец. Это кусок того я выдернул из tut.by всеми правдами и неправдами мне нужен был похожий эффект с переключением блоков, а вот запомнить какой из блоков выбрал пользователь и какая ссылка активна пока не получается это реализовать smile 
PM MAIL   Вверх
Mymik
Дата 16.6.2007, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



Цитата(ReSo @  16.6.2007,  21:15 Найти цитируемый пост)
эффект с переключением блоков

А что это за блоки ??? те которые "Погода, Курсы, Афиша, Программа TV" ???


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
AKS
Дата 16.6.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



ReSo, a вот здесь было уже нечто похожее. Простите великодушно за нескромное поведение, но я даю ссылку на свое решение лишь потому, что в нем как раз есть такая возможность, как "запоминание" активного таба (переменная так и называется activeTab), и еще потому, что мне легче было найти свою "писанину" среди множества подобных решений.
PM MAIL   Вверх
ReSo
  Дата 17.6.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



AKS Спасибо большое сейчас буду пробывать.

Mymik Да они самые.
PM MAIL   Вверх
ReSo
  Дата 17.6.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



AKS ещё раз спасибо, но у меня последнее положение скрипт не запоминает, как отдать юзеру куки с этим выбором? мне это очень важно. Ещё внесу небольшие изменения в Ваш код, вместо h5 лучше использовать <a href="" если у человека отключёт js он попадёт на страницу где уже этот блок выбран как основной.
PM MAIL   Вверх
AKS
Дата 17.6.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



ReSo, Вы внесите необходимые изменения, а потом опубликуйте здесь уже рабочий код - тогда и посмотрим "кто и что не запоминает".
PM MAIL   Вверх
ReSo
Дата 17.6.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Я никаких изменений не вносил. может немного проблему кратко описал. Мне нужно чтобы человек который выбрал блок Б (по умолчанию в первый раз открывается блок А), так вот это выбравший Б приходя на сайт в следующий раз видел по умолчанию блок Б
PM MAIL   Вверх
AKS
Дата 17.6.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Можно решить следующим образом. Если задать ссылкам id (Вы ведь писали, что "вместо h5 лучше использовать <a href=""), то при каждом вызове функции в куках сохранять id кликнутой ссылки. А при событии onload надо попытаться получить из кук этот id, и если id есть, то вызвать событие click на элементе с этим id. Подойдет?
PM MAIL   Вверх
ReSo
Дата 17.6.2007, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Наверное подойдёт. Но если можно всё то же самое кодом т.к. сам это не напишу. smile 
PM MAIL   Вверх
AKS
Дата 17.6.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Цитата(ReSo @  17.6.2007,  14:56 Найти цитируемый пост)
...если можно всё то же самое кодом...

Ну один раз я уже нашел подходящий для Вас (как оказалось) код на этом форуме. Теперь ваша очередь - найдите на форуме все, что касается cookies, "попытайте" это дело, а уж потом продолжим. ;)
PM MAIL   Вверх
ReSo
Дата 17.6.2007, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



 smile  smile  smile  smile 
PM MAIL   Вверх
ReSo
  Дата 22.6.2007, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 16.6.2007

Репутация: нет
Всего: нет



Значит при попытке изменить "h5" на "a" и добавить href= вылезла сразу проблема, таб пару секунд показывается а потом уходит на ссылку smile 

Код

  <div id="tabs">
        <li>
            <a onclick='Izabela(this)' href="http://www.lalala.ru" >First tab</a>
            <p>I have done so much with so little for so long that 
               I am now qualified to do anithing with nothing
            </p>
        </li>
        <li>
            <a onclick='Izabela(this)' href="http://www.lalala.ru" >second tab</a>
            <p>Nadiaaaaaa</p>
         </li>
         <li>
            <a onclick='Izabela(this)' href="http://www.lalala.ru" >third tab</a>
            <p>adf</p>
          </li>
    <div id="content"></div>
</div> 
</body></html>


Код

window.onload = function () {
    document.getElementById('tabs')
            .getElementsByTagName('a')[0].onclick();
}
var Izabela = function () {
    var activeTab,
        getSibling = function (aElement) {
            while (aElement.nodeType === 3) {
                aElement = aElement.nextSibling;
            }
            return aElement;
        };
    return function (aElement) {
        if (aElement === activeTab) {
            return;
        }
        var content = document.getElementById('content'),
            child = content.firstChild;
        if (activeTab) {
            activeTab.parentNode.appendChild(child);
            activeTab.className = '';
        }
        content.appendChild(getSibling(aElement.nextSibling));
        (activeTab = aElement).className = 'selected';
    }
}();



PM MAIL   Вверх
AKS
Дата 23.6.2007, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



Код

<a onclick='Izabela(this);return false;' href="http://www.lalala.ru" >First tab</a>

Кстати, имя функции Izabela уже можно сменить на ReSo. smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.