将CSS类应用于同一页面、不同部分的多个链接中的单击链接


Apply CSS class to clicked link from multiple links to same page, different sections

我有三个链接,它们都指向同一个页面,但指向不同的部分。

这就是页面部分的样子,它们都很相似——只是从不同的表中读取。

<h1>Networking</h1>
<?php 
  include 'inc/connect.php';
  $data = mysqli_query($link, "SELECT * FROM networking WHERE id = 1")or 
                       die(mysqli_error($link));           
  while($info = mysqli_fetch_array( $data )) {
    echo nl2br($info['info']);}
?>  
</article>

这是菜单文件中有"网络"链接的部分。

if ($page == 'system') { 
 $output .="<li><a href='system.php#networking' class='active'>Networking</a></li>";}
 else{
   $output .="<li><a href='system.php#networking'>Networking</a> </li>";}

所有页面部分都在一个名为system.php的页面中。在system.php的头部,我有这条线

<?php $page = 'system'; ?>

这样我就可以将css类"active"应用于活动链接。

现在的情况是,当我点击同一页面的任何一个不同部分链接时,类"活动"将应用于所有3个菜单项。

有没有一种方法可以将类仅应用于单击的链接?

我理解你的问题,你可以这样做:

system.php?section=networking#networking

在顶部执行此操作:

<?php $page = 'system'; $section=$_GET['section']; ?>

然后将if语句更改为:

if ($page == 'system' AND $section == 'networking') { 

注意:这不是最好的解决方案,但使用您的风格,希望这将对您有所帮助!

您可以尝试类似的东西

<?php $page =  parse_url( $_SERVER['REQUEST_URI'], PHP_URL_FRAGMENT ); ?>

但是还有一个额外的问题你需要考虑。当你已经在页面上并使用链接进入另一个部分时,页面将不会重新加载。

如果你想在这种情况下更新活动类,你需要javascript中的一些东西来完成。也许这个问题可以帮助您jQueryMobile将点击事件添加到按钮中,而不是更改页面