Ajax不会让css当前链接样式正常工作

时间:2015-12-18 08:26:49

标签: jquery html css ajax

这是我有问题的ajax文件。另请参阅我原来的css问题:a simple Access form

如何修复此Ajax代码,以便开始让我将当前的链接样式应用到实际的当前页面?

$("a.ajax-link").live("click", function(){
$this = $(this);
var link = $this.attr('href');
var current_url = $(location).attr('href'); 

if( link != current_url && link != '#' ) { 
    $.ajax({
        url:link,
        processData:true, 
        dataType:'html', 
        success:function(data){
            document.title = $(data).filter('title').text(); 
            current_url = link;
            if (typeof history.pushState != 'undefined') 
                history.pushState(data, 'Page', link);

            setTimeout(function(){                      
                $('#preloader').delay(50).fadeIn(600);
                $('html, body').delay(1000).animate({ scrollTop:  0  },1000);                       

                setTimeout(function(){

                    $('#ajax-content').html($(data).filter('#ajax-content').html());
                    $('#ajax-sidebar').html($(data).filter('#ajax-sidebar').html());

                    $('body').waitForImages({
                        finished: function() {
                            Website();
                            backLoading();
                            $('.opacity-nav').delay(50).fadeOut(600);
                        },                                      
                        waitForAll: true
                    });                             
                },1000);
            },0);
        }
    });
}
return false;
});

1 个答案:

答案 0 :(得分:3)

我认为您只需要删除之前current中的<li class = "current">课程,并且需要将其应用于当前<a>代码的父<li>代码。

这可以通过以下方式完成:

$("a.ajax-link").live("click", function(){
    $this = $(this);
    var link = $this.attr('href');
    var current_url = $(location).attr('href'); 

    if( link != current_url && link != '#' ) { 
        $.ajax({
            url:link,
            processData:true, 
            dataType:'html', 
            success:function(data){

                //code to apply current class to current li

                if($this.parent("div.logo").length == 0){
                    $("li.current").removeClass("current");
                    $this.parent("li").addClass("current");
                }
                //code ends here

                document.title = $(data).filter('title').text(); 
                current_url = link;
                if (typeof history.pushState != 'undefined') 
                    history.pushState(data, 'Page', link);

                setTimeout(function(){                      
                    $('#preloader').delay(50).fadeIn(600);
                    $('html, body').delay(1000).animate({ scrollTop:  0  },1000);                       

                    setTimeout(function(){

                        $('#ajax-content').html($(data).filter('#ajax-content').html());
                        $('#ajax-sidebar').html($(data).filter('#ajax-sidebar').html());

                        $('body').waitForImages({
                            finished: function() {
                                Website();
                                backLoading();
                                $('.opacity-nav').delay(50).fadeOut(600);
                            },                                      
                            waitForAll: true
                        });                             
                    },1000);
                },0);
            }
        });
    }
    return false;
});