页面加载后的JQuery .addclass()

时间:2012-12-07 15:15:29

标签: php load addclass removeclass

我将类设置为元素,但在加载页面后,该类将被删除。

我在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 个答案:

答案 0 :(得分:1)

jQuery是脚本语言...加载页面时,肯定会删除您以前的功能,因为不会触发click事件,因此它将无法正常工作。...

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

答案 1 :(得分:0)

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

$(document).ready(function(){
    // your code here
});

答案 2 :(得分: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>

这会在php

呈现所有html之后强制执行

答案 3 :(得分:0)

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