javascript - PHP-GET + Jquery 添加/删除类

标签 javascript php jquery css twitter-bootstrap

我有一个导航栏,其中所选类别应该有其他 CSS,如颜色和背景。在页面顶部,我包含了一些来自 google charts API 的函数,我也使用了 bootstrap。

代码:

<?php echo '        
<nav class="navbar navbar-default navbar-schuberth">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">Monatsreporting</a>
    </div>
    <ul class="nav navbar-nav">
      <li><a href="?report=test">1</a></li>
      <li><a href="#">2</a></li>
      <li><a href="#">3</a></li>
    </ul>
  </div>
</nav>      
<div class="container-fluid">';

if($_GET['report']=='test') {   
    echo '<div class="row">
    <!--Google REGISTRATION BY PRODUCTS-->
        <div id="barchart_material" class="col-xs-8 col-md-8" style="width: 900px; height: 600px;"></div>
            <div class="erklaerung col-xs-4 col-md-4"><p>Text</p></div>
    </div>
    <div class="row">
        <div class="col-xs-12 col-md-12"><p>Text</p></div>
    </div>'; }

要更改事件导航栏元素,我使用名为“事件”的类并在用户单击元素时设置它。

代码:

$(document).ready(function () {

    $(".navbar li").on("click", function(){
        $(this).siblings('li').removeClass('active');
        $(this).addClass("active");
});
    });

问题: 如果我单击一个带有空白链接(“#”)的导航栏元素,设置和删除“事件”类就可以正常工作。如果我单击发送 PHP-GET-Variable 的第一个元素,该类将被删除并设置为单击的元素 1,但随后该类将被删除。

所以为了测试我做了以下事情:

<nav class="navbar navbar-default navbar-schuberth">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">Monatsreporting</a>
    </div>
    <ul class="nav navbar-nav">
      <li><a href="?report=test">1</a></li>
      <li class="active"><a href="#">2</a></li>
      <li><a href="#">3</a></li>
    </ul>
  </div>
</nav>    

我默认给第二个 Item 类激活。因此,当我单击第一个元素时,2 中的类 active 被删除,设置为 1。但是,就像 1 秒后,类 active 从元素 1 中删除再次设置回第 2 项。

所以看起来页面在 之后 Javascripts 触发时完全重新加载。

有什么想法吗?

最佳答案

您描述的行为完全正常。它与 javascript 无关。

实际上,当您单击该链接时,页面会重新加载,并且默认设置了 active 类的 li 变为事件状态。

javascript 将第一个元素设置为事件状态,就在页面重新加载之前,这就是为什么你会看到它“像一秒钟一样”处于事件状态,然后当页面重新加载时,默认事件状态将再次成为第二个。

在这种情况下,您不需要 javascript,而是必须根据每个请求在 PHP 级别处理事件菜单项。

关于javascript - PHP-GET + Jquery 添加/删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43995837/

相关文章:

javascript - 动态加载音频声音Javascript

javascript - 数据仅显示输入是否被触摸 - AngularJs

javascript - 我如何通过 jquery 更改背景颜色?

javascript - 使用 JQuery 和 Flask 的动态下拉不起作用

php - 如何从php执行python文件来更新mysql表?

php - 如何在 yii2 中向 yii\rest\activecontroller 扩展 Controller 添加自定义操作?

javascript - 从 GWT 中的 HighCharts 库中以编程方式在股票图表上选择一个点(也在 native JS 中)

php - 将脚本函数卸载到响应后 : methods and best-practices?

javascript - 单击时关闭小部件

jquery - 使用占位符 html5 时出现奇怪的 Javascript 问题