【发布时间】:2011-05-19 14:26:41
【问题描述】:
在尝试了几个选项(jQuery UI 选项卡和 jQuery 工具选项卡)但没有从任何一个选项中获得正确的结果之后......我又来了。
我想做什么:
在页面加载时动态生成整个标签结构。用于构建选项卡的数据位于 mySql 数据库中,通过 getJSON() 检索。
我倾向于返回我的所有数据,并且它似乎被放置在正确的 DOM 位置(即在我的“选项卡”DIV 中),但是当我调用 ("#tabs").tabs();功能,标签显示不正确。
我可以提供代码,但想看看其他建议。有人遇到动态生成整个选项卡结构的问题吗?有人让它正常工作吗?
非常感谢任何想法。
好的,这是我用来创建标签的代码,我之前已经发布过,但正如我在原文中所说,我想看看是否有其他人对整个标签结构进行了动态创建.. .
使用它,我将所有“标签”垂直堆叠,所有“窗格”在其下方,再次垂直堆叠。
var stateData;
$.getJSON("getStateData.php", function(data) {
stateData = data;
var $theLastGroup = "zzzzz";
var $ulItems = "<ul class='groupTabs'>\n";
var $divItems = "";
$.each(stateData, function(i,jsonData) {
if( $theLastGroup != jsonData.groupName )
{
$ulItems = $ulItems+"<li><a href='#"+jsonData.groupName+"'>"+jsonData.groupID+"</a></li>\n";
if( i > 0 )
{
$divItems = $divItems+"</div>\n";
}
$divItems = $divItems+"<div id='"+jsonData.groupName+"'>\n";
$theLastGroup = jsonData.groupName;
}
$divItems = $divItems+"<span sname='"+jsonData.stateName+
"' lat='"+jsonData.centerLat+
"' lon='"+jsonData.centerLon+
"' zom='"+jsonData.zoom+"' >"+jsonData.stateName+"</span> \n";
});
$ulItems = $ulItems+"</ul>\n";
$divItems = $divItems+"</div>\n";
$("#tabs").append($ulItems);
$("#tabs").append($divItems);
$("#tabs").tabs();
});
05-20-2011 - 有人对此有更多想法吗?我错过了最后的</div>,但这并没有什么不同......(我添加了上面的代码)。
【问题讨论】:
-
应该显示您的代码以及未正确显示的内容。
-
不看你的代码就很难判断。在完成所有选项卡后,您是否正在等待调用 jquery。如果您使用 ajax 获取数据,则必须在添加选项卡后成功调用 ajax 调用。如果您在创建选项卡的函数之后在 pageLoad 中调用 jquery,则在运行 jquery 之前,用于获取数据的 ajax 可能不会返回。
-
您的 CSS 设置是否正确? CSS 类负责处理页面上元素的显示位置。 jquery 只是添加类供它使用。
-
我在 HTML Head 中有这个:
code -
所有类名是否正确链接?您在代码中更改过的任何类名是否也在 CSS 文件中更改过?你也肯定CSS实际上正在加载吗?我并不怀疑你做得对。