jQuery UI选项卡无法正确显示

时间:2013-10-24 19:14:40

标签: jquery jquery-ui-tabs

我正在创建jQuery UI选项卡,但所有选项卡都显示带有所有内容的静态,选项卡无法正常工作,无法选择。 (我没有足够的声誉来发布图像><)数据来自XML文件。

这是代码:(我头上有所有的链接和脚本) 在HTML中:

<div id="tabs">
    <ul id="tabtitle">
    </ul>
</div>

我的js文件:

$(document).ready(function(){
    var i = 1;
    $.get('data.xml', function(d){
        $(d).find('page').each(function(){

            var $page   = $(this),
            title       = $page.find('title').text(),
            description = $page.find('description').text(),

            var tabtitle = '<li><a href="#tab-' + i + '">' + title + '</a>' + '</li>';
            $('ul#tabtitle').append($(tabtitle));

            var tabcontent = '<div id="tabs-' + i + '">';
            tabcontent += '<p> ' + description + '</p>' ;
            tabcontent += '</div>';
            $('#tabs').append($(tabcontent));

            i++;
        });
    });
    $( "#tabs" ).tabs();
});

我的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<Pages>
    <page>
        <title>Tab1</title>
        <description>content for Tab1 here</description>
    </page>
    <page>
        <title>Tab2</title>
        <description>content for Tab2 here</description>
    </page>
    <page>
        <title>Tab3</title>
        <description>content for Tab3 here</description>
    </page>
    <page>
        <title>Tab4</title>
        <description>content for Tab4 here</description>
    </page>
</Pages>

2 个答案:

答案 0 :(得分:0)

在标签中你在div id =“tabs-1”中使用tab-1(href attr)?

我认为正在改变

  • <a href="#tab-' + i + '">

  • <a href="#tabs-' + i + '">

    会做的伎俩

  • 答案 1 :(得分:0)

    您正在创建对tab-n的li引用,但相关的div称为tabs-n

    所以没有匹配,你将面临这个问题;您可以通过注释tabs方法并检查DOM来检查问题。

    尝试更改此内容:

    var tabtitle = '<li><a href="#tab-' + i + '">' + title + '</a>' + '</li>';
    $('ul#tabtitle').append($(tabtitle));
    
    var tabcontent = '<div id="tabs-' + i + '">';
    

    成:

    var tabtitle = '<li><a href="#tab-' + i + '">' + title + '</a>' + '</li>';
    $('ul#tabtitle').append($(tabtitle));
    
    var tabcontent = '<div id="tab-' + i + '">'; 
    

    演示:http://jsfiddle.net/WcgyA/

    修改

    因为您正在通过jQuery get加载xml,所以必须在get callback函数结束时执行tabs方法。

    相关问题