2012-02-20 103 views
2

我正在使用JQuery UI选项卡处理页面,并且我的客户端要求每个选项卡都有一个直接链接。我解决了用下面的代码:Jquery UI选项卡直接链接问题

$(function() { 
    $("#tabs").tabs(); 
    $("#tabs").bind('tabsshow',function(event, ui) { 
     window.location = ui.tab; 
    }) 
}); 

当用户点击该网址看起来像每个选项卡上现在:http://url.com/#tablink,用户就可以创建书签的网址,但该浏览器会自动向下滚动到#ID哪里位于,这是烦人的。我能够通过添加下面的jQuery代码重写此当用户在选项卡计时:

$(".tab-set ul li a").click(function(e) { 
    window.scrollTo(0,0); 
}); 

但是我无法找到的东西时,直接输入在地址栏中的URL,它致力于避免这种,而不是点击一个标签。我尝试以下,但它不工作:

 window.onload = scroll(0,0); 

 window.onload = scrollTo(0,0); 

回答

1

$(function(){ 
    $.scrollTo('0px'); 
    //or 
    $.scrollTo('body',0); 
}); 
+0

感谢您的反馈,但这只是另一种做法,我已经在做。我遇到的问题是让页面在标签已经加载后滚动,所以这是行不通的。 – rjosori 2012-02-20 22:30:55

0

这是默认的浏览器行为滚动到哈希值。

你可以试试这个。

$(function(){ 
    if(location.hash && location.hash == "#your-tab-id-name-here") { 
     $('html, body').animate({scrollTop:0}, 0); 
    } 
}); 
+0

@ShankarSignoli尝试了这个:'$(function(){ \t if(location.hash && location.hash ==“#tabs-1”||“#tabs-2”||“#tabs-3”| |“#tabs-4”||“#tabs-5”){ $('html,body')。animate({scrollTop:0},0); } });' – rjosori 2012-02-20 22:22:23

+0

您可以使用'||'或条件选项卡,并使您的代码简单。 – ShankarSangoli 2012-02-20 22:23:50

+0

@ShankarSignoli但它没有工作,它最初卷起来,然后回到#id区域... – rjosori 2012-02-20 22:25:03