jQuery addClass和removeClass问题

| 我有一些代码,当用户单击链接时,JQuery将类'selected \'添加到该锚点。然后,当用户单击不同的链接时,并非所有链接都以\'selected \'结尾,因此我尝试使用.removeClass从所有元素中删除这些类,然后再将其添加到单击的元素中。 但是,我遇到了一些问题,其中删除了类,但没有添加类。使事情变得更加陌生..它在Chrome中完美运行,但是在IE9和FF4中,只有一个链接向其添加了一个类(第一个链接,生物)(无论我单击链接的顺序如何)...而Safari 5.05却没有\似乎对它们都不起作用。 我尝试将所有代码粘贴到JSFiddle中,但是我无法使其在JSlint中正常工作(无论如何我都会将其发布)。 这是我的JQuery:
$(document).ready(function(){
$(\'#content\').load(\'bio.html .content\'); // fill #content when page loads
$(\'#heading a\').click(function(){ 
    $(\'#content\').load( $(this).attr(\'href\') + \' .content\' );
    $(\'#heading li a\').removeClass(\'selected\');
    $(this).addClass(\'selected\');
    return false; 
});    });
这是HTML的一部分:
<body>
    <div id=\"heading\" class=\"transparent\">
        <ul>
            <li><a href=\"bio.html\">Bio</a></li>
            <li><a href=\"resume.html\">Resume</a></li>
            <li><a href=\"contact.html\">Contact</a></li>
        </ul>
        <h1>Test1</h1>
        <h3>Test2</h3>
    </div>
    <div id=\"content\" class=\"transparent\">
    </div>
    <div id=\"portfolio\" class=\"transparent\">
        <p>Portfolio examples will go here.</p>
    </div>
    <div id=\"footer\" class=\"transparent\"><h2>Test3</h2></div>
</body>
这是JSFiddle,尽管我认为我必须发布了错误的内容(从未使用过JSFiddle)。.http://jsfiddle.net/PhHrX/3/ 有任何想法吗? 感谢您提供的任何帮助。 编辑: 这是完整的CSS:http://pastebin.com/g8zLGR76 这是完整的HTML:http://pastebin.com/CR1Y2595     
已邀请:
它是您的CSS将选择器.selected更改为...。
#heading ul li a.selected {background: #FF0000;}
    
它实际上与您的CSS有关。如果在规则后加上!important,它会花哨地工作。 http://jsfiddle.net/PhHrX/10/     
过去,我使用
.siblings()
选择器来完成此操作。
$(\'#heading a\').click(function () { 
    $(\'#content\').load($(this).attr(\'href\') + \' .content\' );
    $(this).addClass(\'selected\').siblings().removeClass(\'selected\');
    return false; 
});
    
我猜是因为您没有使用
each()
,请尝试以下操作:
$(function(){
    $(\'#content\').load(\'bio.html .content\'); // fill #content when page loads
    $(\'#heading li\').each(function() {
        $(\'a\', this).click(function(e){
            e.preventDefault();
            $(\'#content\').load( $(this).attr(\'href\') + \' .content\' );
            $(\'#heading li a\').removeClass(\'selected\');
            $(this).addClass(\'selected\');
        });
    });
});
    
$(document).ready(function(){
$(\'#content\').load(\'bio.html .content\'); // fill #content when page loads
$(\'#heading a\').click(function(){ 
    $(\'#content\').load( $(this).attr(\'href\') + \' .content\' );
    $(\'#heading li a\').removeClass(\'selected\');
   setTimeout(function() { $(this).addClass(\'selected\'); }, 200);
    return false; 
});    });
    

要回复问题请先登录注册