微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用jQuery UI添加选项卡,然后通过ajax将其填充内容

如何解决用jQuery UI添加选项卡,然后通过ajax将其填充内容

|| 好的,所以基本上我正在使用ui.tabs,我希望第一个选项卡中的链接触发添加2个新选项卡,这两个选项卡都将由ajax调用填充,这取决于链接的值点击。我有以下HTML:
<div id=\"a\">
    <div class=\"wrapper\">
        <input class=\"imageID\" type=\"hidden\" value=\"11\">
        <a href=\"#addTab\" class=\"tabButton\">asdfasdfasdfasfasf</a>
    </div>
    <div class=\"wrapper\">
        <input class=\"imageID\" type=\"hidden\" value=\"1\">
        <a href=\"#addTab\" class=\"tabButton\">asdfasdfasdfasfasf</a>
    </div>
</div>
到目前为止,jQuery如下所示:
$(function(){
    var tabs = $(\"#tabs\").tabs();
    $(\'.tabButton\').click(function(){
        tabs.tabs(\'add\',\'test.htm\',\'Summary\');
        tabs.tabs(\'add\',\'Read Topic\');
    });

    $(\".tabButton\").live(\"click\",function(){
        var getimageID = $(this).parent();
        $.get(\"ajax.PHP?c=\" + $(\".imageID\",getimageID).val(),function() {

        });
    });
});
现在jQuery可以使用了,它已经正确地选择了隐藏输入字段的值,并从ajax.PHP返回正确的响应(在Firebug的控制台中可见),但是我不知道该如何实现如何为选项卡添加正确的信息。基本上,ajax.PHP查询数据库提取2个字段的内容(显然,记录根据发送的值而有所不同)。然后,第一个字段的内容显示在新的“摘要”选项卡中,第二个字段的内容将放置在第二个新选项卡“读取主题”中。但是,我不知道如何构造jQuery来实现这一点(我对这个主题还很陌生)。 (很明显,我知道一旦正确编码,就不需要jQuery的3-6行了)。     

解决方法

        因此,从我可以看到的是您的问题:“我不知道如何实现的是如何为选项卡添加正确的信息。”
$.get(\"ajax.php\",{ name: $(getImageID).val()},function(data) { 
//get the json array in data var     
     $(this).after(\"<span class=\'title\'>Title\"+obj[\"title\"]+\"</span><span class=\'summary\'>\"+obj[\"text\"]+\"</span>\"); //append a couple of spans with the data after you retrieve the unique data

});
首先,您的ajax.php页面需要返回一个简单的JSON_encode \ ed数组:http://php.net/manual/en/function.json-encode.php,有关更多详细信息,请参见此内容。 下一步是在您按下按钮之后添加新内容时,在.documet视图中使用.after:http://api.jquery.com/after/ 这是一个快速的jFiddle,它显示JSON编码的数组在做什么:http://jsfiddle.net/DKuK9/1/ 它正在将多个带有数组内容的跨度应用到div中,不是精确地您的脚本在做什么,但是我没有要调用的ajax页面:) 编辑您的get函数用法是错误的-     ,        我认为您实际上非常接近您想要的。像这样吗
<div>
    <ul>
        <li>
            <input class=\"imageID\" type=\"hidden\" value=\"11\">
            <a href=\"#addTab\" class=\"tabButton\">asdfasdfasdfasfasf</a>
        </li>
    </ul>
</div>

var tabs = $(\"#tabs\").tabs({
    select: function (event,ui) {
        if (!$(ui.tab).hasClass(\'tabButton\')) {
            return; // exit because you did not select the first tab
        }

        var panel = $(ui.panel),summaryID,readID;
        summaryID = panel.find(\'#hidSummaryID\').val();
        readID = panel.find(\'#hidReadID\').val();
        tabs.tabs(\'add\',\'summary.php?c=\' + summaryID,\'Summary\');
        tabs.tabs(\'add\',\'read.php?c=\' + readID,\'Read Topic\');
    }
});
\'hidSummaryID \'和\'hidReadID \'存储一些值的位置,您需要从数据库中获取正确的信息。     ,        好的,所以我使用了其他答案的元素,并得到了下面的工作代码:
$(function(){   
    var tabs = $(\"#tabs\").tabs();
    $(\".tabButton\").live(\"click\",function(){
        var getImageID = $(\'.imageID\',$(this).parent()).val();
            tabs.tabs(\'add\',\'ajax.php?content=summary&id=\' + getImageID,\'Summary\');
            tabs.tabs(\'add\',\'ajax.php?content=read&id=\' + getImageID,\'Read Topic\');
    });
});
导致它触发的链接与我原来的问题相同。我认为我做不同的原因是因为我已将其从按钮单击中解雇了。这似乎是对jquery的正确合理使用吗?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。