1

我正在编写一个用户界面,允许用户上传一组视频,每个视频都显示在页面区域的单独选项卡上。当上传新视频或删除现有视频(均通过 AJAX)时,我想相应地更新选项卡。我在更新标签后无法重绘标签,并且没有运气。这就是我正在做的事情:

javaScript 将请求发送到服务器,如下所示:

function deleteVideo(id){
    $.post("video.php?action=deletevideo",
        {'id' : id},
        function(response){
            $('#videoTabs').html(response);
            $('#videoTabs').tabs();
        }
    );
}    

在 PHP 端,请求的处理方式如下:

switch($_GET['action']) {
    case 'deletevideo':
        try{
            $video = new videoClass($_POST['id']);
            $video->delete();
            draw_video_tabs();
        }catch(Exception $e){
            echo $e->getMessage();
        }
        break;

我可以看到 PHP 脚本发回的代码正是我所期望的,并且“draw_video_tabs”函数与我最初绘制页面时使用的函数相同(不使用 ajax)。它给我的 HTML 正是它应该是的。

然而,由于某种原因,当它发回回复时,“#videoTabs”div 没有得到标签。相反,我看到的是直接的 HTML(一个项目符号列表和一组匹配的 div)。

我还尝试将响应作为 JSON 编码对象发送回来,并以这种方式将其插入正文。这也给了我正确的代码,但没有标签。

那么我在这里错过了什么?我假设当从 AJAX 请求加载内容时,有一些相对简单的方法可以创建选项卡。请注意,这是我正在加载的整个选项卡集 - 而不是一个选项卡。它被加载到页面加载时已经生成的同一个 div 中。

4

1 回答 1

1

如果要加载所有选项卡,为什么不删除旧的 html 标记并插入新的?如果只是添加和删除,请看这篇文章:使用 jQuery 和 jQuery UI 添加和删除选项卡

补充:您可以在http://jqueryui.com/demos/tabs/ 上找到所有文档(选项卡方法)

.tabs( "destroy" )
.tabs( "add" , url , label , [index] )
.tabs( "remove" , index )
于 2012-09-19T21:56:11.010 回答