这是我有问题的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;
});
答案 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;
});