4

我将类分配给元素,但在加载页面后该类被删除。

我在我的 script.js 中使用了这个函数

$('#main-nav li ul li a').click(function(){
    $('#main-nav li ul li').children().removeClass('current');
    $(this).addClass('current');
});

这在我的 PHP 视图中:

 <ul id="main-nav">  <!-- Accordion Menu -->
    <li>
       <a href="#" class="nav-top-item no-submenu"> <!-- Add the class "no-submenu" to menu items with no sub menu -->
    On site
       </a>       
    </li>

    <li> 
       <a href="#" class="nav-top-item current"> <!-- Add the class "current" to current menu item -->
    Programs
       </a>
   <ul>
       <li><a href="<?php echo site_url('admin/country_management')?>">Manage country</a></li>
       <li><a href="<?php echo site_url('admin/channel_management')?>">Manage channel</a></li>
       <li><a href="#">Manage Comments</a></li>
       <li><a href="#">Manage Categories</a></li>
    </ul>
       </li>

</ul> <!-- End #main-nav -->

如果我使用它<li><a href="<?php echo site_url('...')?>">Manage</a></li>,则添加类电流,但在移除负载后。

如果我在加载页面后使用 php 代码或有任何解决方案,我该如何添加类?

4

4 回答 4

1

jQuery 是脚本语言......当加载页面时,它肯定会删除你以前的功能,因为点击事件不会触发,所以它不会工作......

加载页面后,只需通过 PHP 放置一些逻辑 ....

于 2018-07-15T02:14:55.067 回答
0

使用 JQuery,您可以在页面加载时执行代码:

$(document).ready(function(){
    // your code here
});
于 2012-12-07T15:18:27.160 回答
0

这应该工作:

$(document).ready(function(){
    $('#main-nav li > a').click(function(e){
        $('#main-nav a').removeClass('current');
        $(e.target).addClass('current');
    });

});

如果它不起作用,</body>请在文档末尾之前尝试此脚本块:

<script type="text/javascript">
$(function(){
    $('#main-nav li > a').click(function(e){
        $('#main-nav a').removeClass('current');
        $(e.target).addClass('current');
    });
});
</script>

这将在所有 html 由 php 呈现后强制执行

于 2012-12-07T15:50:45.450 回答
0

首先将您的函数包装在 a 中$(document). ready(function () {})并使用其中的$('#main-nav'). on('click', 'li > a', function () {} )方法。. on()最好将事件侦听器附加到动态加载的元素。

于 2018-01-10T05:25:18.080 回答