Jump to content
  • 0

Как выбрать активную ссылку?


Prays
 Share

Question

Здравствуйте. Подскажите, пожалуйста, как с помощью jQuery выбрать ссылку, которая является активной. То есть, мне нужно сделать условие. Если например ссылка Home является активной, то li в котором она находится присваивается класс current.

HTML код:



<ul id="nav">
<li id="home"><a href="#">Home</a></li>
<li id="services"><a href="#">Services</a></li>
<li id="about"><a href="#">About</a></li>
<li id="contact"><a href="#">Contact</a></li>
</ul>

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

В принципе, подойдет;) Просто jQuery нравится. Если кто-то знает как в нем выбрать, будет супер)

Это неправильное рассуждение, каждая вещь нужна для своих задач. Вот тут например на жс можно написать пару строк и зачем тогда подключать целую библиотеку джиквери для этого?

Link to comment
Share on other sites

  • 0

На самом деле. Если на сайте только одно меню, то это да, нет смысла подключать целую библиотеку. Но на сайте кроме меню, еще будет слайд-шоу, а со временем возможны всякие jQuery эффекты для юзабилити. А если так обстоят дела, то почему бы не выбирать элементы с помощью этой библиотеки, к тому же там это делать проще.

P.S. Если Вам не сложно, то подскажите как это делается чистым JS, буду благодарен;)

Link to comment
Share on other sites

  • 0

Вижу я, как это проще делать, чот аж на форум за советом пришёл.

По данному примеру невозможно выбрать активную ссылку, поскольку они все активны, так как ведут на текущую страницу.

Как только будут вести на разные, пройдись по этим ссылкам и сравни их аттрибут href с адресом страницы.

Link to comment
Share on other sites

  • 0

"Проще" я в том смысле, что проще выберать элементы, а не актиную ссылку. А на счет "они все активны" это не совсем так, вот пример:

<ul id="nav">
<li id="home"><a href="#">Home</a></li>
<li id="services"><a href="#">Services</a></li>
<li id="about"><a href="#">About</a></li>
<li id="contact"><a href="#">Contact</a></li>
</ul>

ul#nav li a:active {
color: green;
}

При нажатии она становится зелёный, то есть активной. Если бы они все были бы активными, они все были бы зелёными. Вот мне и нужно выбрать эту ссылку a:active. Не знаете как это сделать?

Edited by Prays
Link to comment
Share on other sites

  • 0

Здравствуйте. Подскажите, пожалуйста, как с помощью jQuery выбрать ссылку, которая является активной. То есть, мне нужно сделать условие. Если например ссылка Home является активной, то li в котором она находится присваивается класс current.

Если я правильно понимаю в чем вопрос, то в jQuery нет такой функции.

Для того, чтобы получить url текущей страницы нужно использовать свойство location.

document.location - полный url адрес

document.location.hash - якорная часть

document.location.host - хост и порт

document.location.hostname - хост

document.location.href - полный url адрес

document.location.pathname - каталожная часть (без хоста)

document.location.port - номер порта

document.location.protocol - протокол

document.location.search - строка запроса

Далее в полученное строке ищешь нужное значение и в зависимости от результата присваиваешь класс той или иной ссылке.

Ну или еще лучше, использовать средства php

При нажатии она становится зелёный, то есть активной. Если бы они все были бы активными, они все были бы зелёными. Вот мне и нужно выбрать эту ссылку a:active. Не знаете как это сделать?

Вы путаете псевдокласс :active с текущей странницей. Это разные вещи ;)

Int имел ввиду href="#", в этом смысле все ссылки ведут на одну страницу - текущую.

Edited by sigma77
Link to comment
Share on other sites

  • 0

На php :active не обработаешь

Поскольку :active появляется в момент нажатия, советую обрабатывать onlick

Чё-то типа

var a=document.getELementsByTagName('a');
for (t=0; t < a.length; t++)
a[t].onclick=function {alert(this.firstChild.nodeValue+' активно');};

Link to comment
Share on other sites

  • 0

На php :active не обработаешь

Я думаю под активной, ТС понимает текущую страницу.

я тоже так понимаю, ибо просто для изменения active хватит и класса в ксс без всяких пхп и жс

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy