2013-05-14 84 views
-1

我下面jQuery code问题与jQuery UI选项卡

$("#tabs").tabs({ 
    select: function(event, ui) {     
    window.location.replace(ui.tab.hash); 
},}).addClass("ui-tabs-vertical ui-helper-clearfix"); 

除了第一个标签的所有其他tabs jQuery的加入style属性值display:none,由于这个我得到的错误,而在第二个选项卡装载openlayers map。由于在创建map其对应的divhidden state.So我加了下面的代码,

$("#tabs").tabs("widget").find('#tab-2').attr('style','display:block'); 

但这一引s到另一个问题,同时加载第三个标签页,第二个标签页也处于visible状态,有没有其他解决方案可以解决这个问题?

回答

1

我有一个类似的问题没有使用jqueryui。因为我可以控制选项卡的工作方式,所以我将宽度和高度设置为0,而不是使用display:none来隐藏选项卡,这样可以使map-gmaps在我的示例中呈现。

另一件事要看作是一个回调。 I.E通过点击选项卡而不是在页面加载时渲染地图。有一种方法可以做到这一点我认为:http://api.jqueryui.com/tabs/#event-activate

更新:我真的结束了第二个想法,但正如我所说我写了自己的选项卡,所以它更容易一点。

+0

如果我将'map'相关的代码保存在'activate callback function'中,那么'map'的加载完全如预期,但是当我在第二个选项卡中刷新页面时,map不会被加载。 – 2013-05-14 11:59:50

+0

你需要使用回电,每当你加载地图 – matpol 2013-05-14 12:22:03

+0

哪些回拨我应该使用? – 2013-05-14 12:26:53