|
|
|
| Здравствуйте!
Есть обычная таблица, в ячейках таблицы находятся текстовые ссылки.
Подскажите, как можно сделать изменение фона ячейки с ссылкой, которая соответствует загруженной странице и сделать ссылку не активной.
Чтобы было визуально понятно, какая ячейка со ссылкой соответствует открытой странице.
Конечно на PHP это можно сделать, но нужно на стороне клиента.
Вот так работает, но как сделать ссылку не активной, т.е. просто текстом???
<script>
$(function(){
$('.tabl_obyavl a').each(function(){
url = String(document.location).split('//')[1];
href = $(this).attr('href');
pos = url.indexOf(href) +1;
if(pos) {
$(this).parent().removeClass('tabl_obyavl');
$(this).parent().addClass('tabl_obyavl1');
$(this).removeClass('linc');
$(this).addClass('linc1');
}
});
});
</script>
|
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td align="center" valign="middle" class="tabl_obyavl"><a href="....php?razd=m" class="linc">Мобильные телефоны</a></td>
<td align="center" valign="middle" class="tabl_obyavl"><a href="....php?razd=t" class="linc">Стационарные телефоны</a></td>
<td align="center" valign="middle" class="tabl_obyavl"><a href="....php?razd=r" class="linc">Рации и радиостанции</a></td>
<td align="center" valign="middle" class="tabl_obyavl"><a href="....php?razd=p" class="linc">Другое</a></td>
</tr>
</table>
|
| |
|
|
|
|
|
|
|
для: segazav
(01.11.2014 в 22:44)
| | >Конечно на PHP это можно сделать, но нужно на стороне клиента.
И для чего этой ерундой заниматься клиенту, если серверу это сделать всего один плевок? Серверу достаточно для это проверять всего лишь один GET-параметр, а клиенту сравнивать целую строку.
Напишите вот такое:
<a onmouseover="alert(this.href)" href="?var=1">text</a>
|
Что показывает сообщение? Как видите это будет полный адрес, включая и протокол, хотя в атрибуте указан относительный адрес и даже без имени скрипта. Зачем же тогда:
String(document.location).split('//')[1];
Если уж на стороне клиента сравнивать по параметру, то тогда location.search, а не то что вы делаете. | |
|
|
|
|
|
|
|
для: confirm
(03.11.2014 в 18:13)
| | Я прекрасно понимаю, что в этом случае - PHP это намного лучше, но в моём случае это будет очень трудоемкий процесс замены кода. | |
|
|
|
|
|
|
|
для: segazav
(04.11.2014 в 19:08)
| | Это почему трудоемкий процесс? Вы что руками собственными код пишите при каждом запросе страницы или же это все-таки автомат получающий данные и должным образом их форматирующий?
Разберитесь с логикой скрипта своего, с данными, и тогда такой "отмазки" не будет. Клиент все-таки не для проблем, которые по необдуманности возникают, и решать которые теперь обязан он. | |
|
|
|
|
|
|
|
для: confirm
(04.11.2014 в 19:39)
| | Хотелось бы разобраться, почему нижеприведенный код сравнивает строку URL адреса не полностью и как это можно исправить?
Например, если адрес ......php?razd=uslugi_stroit то меняется класс у ссылки с таким же адресом и ещё у ссылки с адресом: ......php?razd=uslugi
Функция document.location.search не совсем подходит, т.к. сравнение нужно всей строки после доменного имени, а не только get параметров.
<script>
$(function(){
$('.tabl_obyavl a').each(function(){
url = String(document.location).split('//')[1];
href = $(this).attr('href');
pos = url.indexOf(href) +1;
if(pos) {
$(this).parent().removeClass('tabl_obyavl');
$(this).parent().addClass('tabl_obyavl1');
$(this).removeClass('linc');
$(this).addClass('linc1');
}
});
});
</script> | |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 18:52)
| | location.search, это не функция, а метод объекта location, и после домена нет строк.
Объект location принадлежит объекту window - window.location, поэтому window можно и опустить, если структура документа не фреймы.
Для строковых операций нужно получить url, то есть:
var url = location.toString()
А параметры вплоть до протокола доступны из объекта. | |
|
|
|
|
|
|
|
для: confirm
(25.11.2014 в 22:18)
| | Я уже не знаю даже, что тут можно применить, ничего не подходит.
Данный код срабатывает 2 раза, т.к. бывает, что название самой страницы совпадает и get параметры тоже.
Я уже пробовал сравнивать с конца Url lastIndexOf
Сравнить просто 2 строки тоже не получается, т.к. в ссылках прописаны пути без домена.
Отрезать URL тоже не вариант, т.к. бывают разные каталоги и степень вложения от главной страницы. | |
|
|
|
|
|
|
|
для: segazav
(25.11.2014 в 23:59)
| | Это называется "маяться от скуки". Хотите определять стили - определяйте их на стороне клиента, для него это будет плевой задачей, нужно только определить условие и все. | |
|
|
|