Jquery Can';不能正确地将addClass添加到代码中

Jquery Can';不能正确地将addClass添加到代码中,jquery,Jquery,为了让这段代码正常工作,我正在尝试将jquery的前3行更改为下3行,css和jquery包含在同一个php文件中 $('.nav li a').css("text-decoration", "none"); $(this).css("text-decoration", "underline"); return false; $('.nav li a').addClass("undnone"); $(this).addClass("und"); return f

为了让这段代码正常工作,我正在尝试将jquery的前3行更改为下3行,css和jquery包含在同一个php文件中

$('.nav li a').css("text-decoration", "none");
    $(this).css("text-decoration", "underline");
    return false;

$('.nav li a').addClass("undnone");
    $(this).addClass("und");
    return false;
CSS

下面是整个jquery代码

$(document).ready(function() {

var hash = window.location.hash.substr(1);
var href = $('.nav li a').each(function(){
    var href = $(this).attr('href');
    if(hash==href.substr(0,href.length-4)){
        var toLoad = hash+'.php #content';
        $('#content').load(toLoad)
    }                                           
});

$('.nav li a').click(function(){

    var toLoad = $(this).attr('href')+' #content';
    $('#content').hide('fast',loadContent);
    $('#load').remove();

    $('#load').fadeIn('normal');
    window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-4);
    function loadContent() {
        $('#content').load(toLoad,'',showNewContent())
    }
    function showNewContent() {
        $('#content').show('normal',hideLoader());
    }
    function hideLoader() {
        $('#load').fadeOut('normal');
    }

    $('.nav li a').addClass("undnone");
    $(this).addClass("und");
    return false;


});

});
html部分与菜单

<ul class="nav" >
    <li><a href="champions.php">Champions</a></li>
    <li><a href="items.php">Items</a></li>
    <li><a href="changes.php">Changes</a></li>
    </ul>
   <a href="#" class="scrollup">Scroll</a>

除了添加
und
类之外,还必须删除
undnone

$(this.removeClass(“undone”).addClass(“und”)

否则,它们都将被应用,并且
und
类不会自动获得优先级


您使用的旧/原始方法之所以有效,是因为您实际上是在为元素设置/覆盖
文本装饰的值,而不是简单地添加一个类。

将类用于单个css属性通常是个坏主意。你有点失去了语义学之类的东西。您可以使用单个且更有意义的类
active

var active = 'active';
$('.nav li a' + '.' + active).removeClass(active);
$(this).addClass(active);
和CSS

.nav a {
    text-decoration: none;
}

.nav a.active {
    text-decoration: underline;
}
顺便说一下,你需要的不是结果

function loadContent() {
    $('#content').load(toLoad, '', showNewContent); //no parenthesis here
}
function showNewContent() {
    $('#content').show('normal', hideLoader); //and here
}

我没有复制我重写了代码,所以在我的代码中有“und之后,它仍然不起作用请提供一个完整的代码(HTML、JS等)示例,以便我们可以重新创建问题。jsFiddle.net示例通常非常有用。首先,您需要的函数不是调用函数的结果
function loadContent(){$('#content')).load(toLoad,,,showNewContent);/*here*/}函数showNewContent(){$('#content').show('normal',hideLoader);/*和here*/}
function loadContent() {
    $('#content').load(toLoad, '', showNewContent); //no parenthesis here
}
function showNewContent() {
    $('#content').show('normal', hideLoader); //and here
}