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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатая ссылка имеет другой стиль 
:(
    Опции темы
TWoVKP
Дата 1.10.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вообщем суть такая, есть менюшка в которой естественно много ссылок, при наведение на ссылку меняется её стиль, становится другого цвета, появляется подёркивание и увеличивается шрифт на 1 пункт, вроде ничего необычного, ссылка при потере фокуса получает стандартный слтилью

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

Покажите примерчик!!! smile 
PM MAIL   Вверх
bars80080
Дата 1.10.2009, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



а при этом случаем не происходит ли перезагрузка страницы?
PM MAIL WWW   Вверх
TWoVKP
Дата 2.10.2009, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



При нажатии на пункт меню происходит загрузка соответствующей страницы, если страница была активной в данный момент времени то естественно происходит перезагрузка этой же самой страницы!
PM MAIL   Вверх
Grig
Дата 2.10.2009, 03:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если происходит перезагрузка страницы, то тебе надо передавать в ссылке параметр, по которому можно будет определить какая ссылка была нажата. Если же перегружается только содержимое страницы(фрейм, аякс) юзай глобальную яваскриптовую переменную. 



--------------------
        
PM MAIL ICQ   Вверх
TWoVKP
Дата 2.10.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Grig 

Ну вообще при нажатие на ссылку перезагружается вся страница!

А можно небольшой примерчик!  smile 

Плз

PM MAIL   Вверх
bars80080
Дата 2.10.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



Цитата(TWoVKP @  2.10.2009,  09:45 Найти цитируемый пост)
Ну вообще при нажатие на ссылку перезагружается вся страница!

в этом случае выделение пункта меню традиционно решается на сервере

к примеру одна ссылка http:/ /server.ru/page1.html, вторая http:/ /server.ru/page2.html
если сайт статический, то на каждой странице мы помечаем нужный пункт меню соответствующим классом и рисуем для него нужные стили

если сайт динамический
к примеру одна ссылка http:/ /server.ru/index.php?page=1, вторая http:/ /server.ru/index.php?page=2
то на сервере пишется скрипт, который строит меню и в выбранном пункте вставляет соответствующий класс
PM MAIL WWW   Вверх
TWoVKP
Дата 2.10.2009, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



bars80080

Сайт у меня динамический, написан на PHP, это как во втором примере:

Код

к примеру одна ссылка http:/ /server.ru/index.php?page=1, вторая http:/ /server.ru/index.php?page=2
то на сервере пишется скрипт, который строит меню и в выбранном пункте вставляет соответствующий класс 


Скрипт который строит меню тоже есть, вот:

Код

<?php 
    $sql = 'SELECT * FROM menu_left';
    $ergebnis = mysql_query($sql, $db);
    $spalten = mysql_num_rows($ergebnis);
    
    echo "<table class='left_menu_tabel' >";
    for($i = 0; $i < $spalten; $i++)
    {
        $pfad = mysql_fetch_array($ergebnis);
        echo "<tr>";
            /*Сначала выводим катринку для пунтка меню*/
            echo "<td>";
                echo "<a target='_self' title='$pfad[4]' class='link_menu_left_with_icon' href='$pfad[3]'>";
                    echo "<img src='$pfad[1]' width='18' height='18'/>";
                echo "</a>";
            echo "</td>";
            /*Теперь выводим сам пункт меню ввиде ссылки*/
            echo "<td class='left_menu' onMouseOver='over(this);' onMouseOut='out(this);'>";
                echo "<a target='_self' title='$pfad[4]' class='link_menu_left' href='$pfad[3]'>";
                    echo "$pfad[2]";
                echo "</a>";
            echo "</td>";
        echo "</tr>";
    }
    echo "</table>";
?>



Вот в этой строчке происходит присваивание класса - ссылке 
Код

(class='link_menu_left')
, при получение мышкой фокуса меняется стиль ссылки  --
Код

a:hover
{
    color: #FF0000;
    text-decoration: underline;
    font-weight: bold;
}


А вот как теперь присвоить нажатой ссылке определённый клас, но так чтобы при нажатии на другую ссылку в меню та, предыдущая получала стиль
Код

(class='link_menu_left')


а нажата имела совсем другой вид????

Как такой реализовать, ну просто не доходит до меня! 

Вот хотя бы небольшой примерчик: 
http://forex-forum.my1.ru/gb/

Посмотрит меню, все ссылки имеют одинаковый стиль кроме той которая в данный момент выбрана!

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


Опытный
**


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

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



я бы сделал так:
Код

<?php 
$my_i = $_GET['i'];
    $sql = 'SELECT * FROM menu_left';
    $ergebnis = mysql_query($sql, $db);
    $spalten = mysql_num_rows($ergebnis);
    
    echo "<table class='left_menu_tabel' >";
    for($i = 0; $i < $spalten; $i++)
    {
//указываем класс
$str_class = ($my_i==$i)?"link_menu_left":"link_menu_right";

        $pfad = mysql_fetch_array($ergebnis);
        echo "<tr>";
            /*Сначала выводим катринку для пунтка меню*/
            echo "<td>";
                echo "<a target='_self' title='$pfad[4]' class='link_menu_left_with_icon' href='$pfad[3]'>";
                    echo "<img src='$pfad[1]' width='18' height='18'/>";
                echo "</a>";
            echo "</td>";
            /*Теперь выводим сам пункт меню ввиде ссылки*/
            echo "<td class='left_menu' onMouseOver='over(this);' onMouseOut='out(this);'>";
                echo "<a target='_self' title='$pfad[4]' class='".$str_class."' href='$pfad[3]?i=".$i."'>";
                    echo "$pfad[2]";
                echo "</a>";
            echo "</td>";
        echo "</tr>";
    }
    echo "</table>";
?>


осталось только прописать классы link_menu_left и link_menu_right


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


 




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


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

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