Я использую следующее, чтобы получить активный URL страницы:
<?php function curPageURL() { $pageURL = 'http'; if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; } return $pageURL; } ?>
повторение вышеизложенного дает мне мой URL-адрес следующим образом:
http://www.domain-nane.com/index.php?option=com_content&view=article&id=6&Itemid=109
Я хочу добавить класс «current» в мой «li», если активна страница присутствует – зависит от «Itemid», содержащегося в URL-адресе, т.е.
<li class="current"> <a href="index.php?option=com_content&view=article&id=6&Itemid=109">Link 1</a> <li> <a href="index.php?option=com_content&view=article&id=6&Itemid=110">Link 2</a> </li> <li> <a href="index.php?option=com_content&view=article&id=6&Itemid=111">Link 3</a> </li>
Любые подсказки / идеи?
вы делаете неправильную вещь
простой способ ниже.
В вашем URL Itemid
уникален, поэтому лучше сделать это следующим образом
<li <?php if($Itemid == $_REQUEST['Itemid']) { echo class='current'; } ?> > <a href="index.php?option=com_content&view=article&id=6&Itemid=109">Link 1</a> </li> <li <?php if($Itemid == $_REQUEST['Itemid']) { echo class='current'; } ?> > <a href="index.php?option=com_content&view=article&id=6&Itemid=110">Link 2</a> </li> <li <?php if($Itemid == $_REQUEST['Itemid']) { echo class='current'; } ?> > <a href="index.php?option=com_content&view=article&id=6&Itemid=111">Link 3</a> </li>
Я думаю, что вы хотите что-то вроде этого:
<ul id="navigation"> <li <?php if (strpos($_SERVER['PHP_SELF'], 'index.php')) echo 'class="current"';?>><a href="index.php">Home Page</a></li> <li <?php if (strpos($_SERVER['PHP_SELF'], 'about.php')) echo 'class="current"';?>><a href="about.php">About Me</a></li> <li <?php if (strpos($_SERVER['PHP_SELF'], 'contact.php')) echo 'class="current"';?>><a href="contact.php">Contact Me</a></li> <li <?php if (strpos($_SERVER['PHP_SELF'], 'portfolio.php')) echo 'class="current"';?>><a href="portfolio.php">My Work</a></li> </ul>
Я надеюсь, что это поможет вам!
PS: index.php, about.php, contact.php и portofolio.php должны быть заменены ссылками на ваши страницы.
это просто
<li class="<?php if($Itemid == $_REQUEST['Itemid']) { echo 'active'; } ?> ">
Это будет выглядеть так, как в HTML
<li class="active">
Я не уверен, хотите ли вы решения в Javascript. Здесь мое предложение Ваш Html-код
<ul id="navigation"> <li class="current"> <a href="index.php?option=com_content&view=article&id=6&Itemid=109">Link 1</a> </li> <li> <a href="index.php?option=com_content&view=article&id=6&Itemid=110">Link 2</a> </li> <li> <a href="index.php?option=com_content&view=article&id=6&Itemid=111">Link 3</a> </li> </ul>
Код Javascript
url = 'http://www.domain-nane.com/index.php?option=com_content&view=article&id=6&Itemid=111'; // url = '<php echo curPageURL();?>'; var urlRegex =/Itemid=([0-9]+)/i; var Itemid = url.match(urlRegex)[1]; // alert(Itemid); var nodes = document.getElementById('navigation').childNodes; var lis; for(i=0; i<nodes.length; i++) { if(nodes[i].nodeType == 1){ var lis = nodes[i]; var aElem = lis.childNodes[1]; var AItemId = aElem.href.match(urlRegex)[1]; if(Itemid == AItemId) { lis.className = lis.className + " current"; } } }
Пример выполнения: http://jsfiddle.net/xdsUm/3/