Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery突出显示菜单_Jquery - Fatal编程技术网

jquery突出显示菜单

jquery突出显示菜单,jquery,Jquery,我有一个脚本,在单击时突出显示导航菜单,但单击后所选类消失。这里是否有一个解决方法,可以使所选类在单击后生效 <script type="text/javascript"> $( document ).ready( function() { $( '#nav ul li a' ).click( function() { $( '#nav ul li' ).removeClass( 'selected' ); $( this ).parent(

我有一个脚本,在单击时突出显示导航菜单,但单击后所选类消失。这里是否有一个解决方法,可以使所选类在单击后生效

<script type="text/javascript">
$( document ).ready( function() {
    $( '#nav ul li a' ).click( function() {
        $( '#nav ul li' ).removeClass( 'selected' );
        $( this ).parent( 'li' ).addClass( 'selected' );
        alert('hello');
    });
});

</script>
    <div id="nav"> 
        <ul>    
            <li><a href="/">Home</a></li>
            <li><a href="/blog/">Blog</a></li>
            <li><a href="/about/">About</a></li>
        </ul>
    </div>

$(文档).ready(函数(){
$(#nav ul li a')。单击(函数(){
$('nav ul li').removeClass('selected');
$(this).parent('li').addClass('selected');
警惕(“你好”);
});
});

如果我理解正确。。。例如:

$(文档).ready(函数(){
$('#nav ul li')。单击(函数(){
$('#nav ul').children('li').removeClass();
$(this.addClass('selected');
});
});
#导航选择一个{背景:红色;显示:块}
您可以使用该方法获取选择了
类的
li
元素

$( document ).ready( function() {
    $( "#nav ul li a" ).click( function() {
        $( this ).parent( "li" )
            .addClass( "selected" )
            .siblings( ".selected" )
                .removeClass( "selected" );
        return false;
    });
});

您可以在上看到此操作。

作为作者的说明。。。使用
return false
链接(转到新页面)将不再工作。但在您的示例中似乎不需要这样做?@gearsdigital,对此进行评论:我添加了
return false
,因为我认为这可能是类被删除的原因(单击后页面会重新加载)。@Marcus I know…:)我的便条是给线程所有者的。它不应该是那么清楚。我也不确定他到底想做什么。。。通常,突出显示当前菜单项的最佳方式是基于cms的解决方案。如果没有额外的客户端站点脚本或jquery插件,他将永远无法在所有页面上获得当前项目活动。@gearsdigital,我对您的评论进行评论是为了说明为什么我为作者添加了
return false
,而不是回答;)@gearsdigital如果突出显示当前菜单项的最佳方式是使用cms解决方案,那么我很想听听您的想法。顺便说一句,我用的是django。我觉得你的代码应该可以用。你能提供更多的信息吗?在上面的脚本中,我特意添加了警报(“hello”)来测试单击的li是否实际添加了所选的类,问题是在我单击警报框(函数退出)上的ok并突出显示的li(样式)消失后。将警报(“hello”)替换为“return false”会使高亮显示有效,但转到下一页不再像@gearsdigital所指出的那样有效
$( document ).ready( function() {
    $( "#nav ul li a" ).click( function() {
        $( this ).parent( "li" )
            .addClass( "selected" )
            .siblings( ".selected" )
                .removeClass( "selected" );
        return false;
    });
});