如何在表单提交时重新加载jquery选项卡?

如何在表单提交时重新加载jquery选项卡?,jquery,ajax,tabs,Jquery,Ajax,Tabs,我使用jquery作为ajax选项卡,而不是jqueryui 下面的代码是我的ajax选项卡,它用一个外部文件加载所选选项卡 我还有一个for,它使用ajax将数据发布到这个页面HOMEfriendstatus.inc.php,它是#tab2 提交表单时,我想知道的是,无论用户在屏幕上加载了什么选项卡,我是否可以让它重新加载或更改为#tab2以显示#tab2的更新内容 var pageUrl=新数组(); pageUrl[1]=“HOMEbulletin.inc.php”; pageUrl[2

我使用jquery作为ajax选项卡,而不是jqueryui 下面的代码是我的ajax选项卡,它用一个外部文件加载所选选项卡

我还有一个for,它使用ajax将数据发布到这个页面HOMEfriendstatus.inc.php,它是#tab2

提交表单时,我想知道的是,无论用户在屏幕上加载了什么选项卡,我是否可以让它重新加载或更改为#tab2以显示#tab2的更新内容


var pageUrl=新数组();
pageUrl[1]=“HOMEbulletin.inc.php”;
pageUrl[2]=“HOMEfriendstatus.inc.php”;
pageUrl[3]=“HOMEbulletin.inc.php”;
函数加载选项卡(id){
如果(pageUrl[id]。长度>0){
$(“#加载”).show();
$.ajax({url:pageUrl[id],cache:false,success:function(message){
$(“#tabcontent”).empty().append(message);
$(“#加载”).hide();
}
});                 
}
}
$(文档).ready(函数(){
/*$(“#表1”).addClass('selected')*/
$(“#加载”).hide();
$(“#表1”)。单击(函数(){
负荷表(1);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this.addClass('selected');
});
$(“#表2”)。单击(函数(){
负荷表(2);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this.addClass('selected');
});
$(“#表3”)。单击(函数(){
负荷表(3);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this.addClass('selected');
});
});

您是否尝试过以成功回调的形式运行
加载选项卡(2)
?这应该足够了

您还没有向我们展示通过AJAX发送表单的代码,但我想类似的代码应该可以工作:

$.post('http://example.com/ajax/form', $('form').serialize(), 
    function (data, textStatus) {
        loadTab(2);
        $('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
        $('#tab2').addClass('selected');
    }
);

注意,该代码复制了代码< >代码($“tab2”)。单击()/代码>函数,因此在这种情况下,您应该考虑使用命名函数而非匿名,并在Ajax回调中重用它:

function loadSecondTab() {
    loadTab(2);
    $('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
    $('#tab2').addClass('selected');
}

$('#tab2').click(loadSecondTab);
$.post('http://example.com/ajax/form', $('form').serialize(), loadSecondTab);

另外,jQuery用户界面不是太大。您不必使用所有的it位。您可以轻松地加载tabs模块。

他无法理解这一点,或者JQueryUI内置了所有这些功能。很明显,他甚至不懂语言,他问这是什么,在同一段代码上有三个问题?我们正在为他写他的网站。有人记下他的地址,这样我们就可以给他寄一张发票。你知道你写的这些废话,你很快就接近JQueryUI的大小了。只有核心和标签的JQueryUI只有:184.23KB未压缩和~122.7KB缩小。考虑到谷歌甚至在服务器上为你提供比你更好、更快、数量更多的服务,这几乎是不可能的。坦率地说,不使用这个是愚蠢的。因为谷歌托管了它,如果你的任何访问者已经访问过同样使用谷歌托管版本的网站,它只会使用已经下载的副本。这意味着使用0带宽,从用户计算机加载。没有比这更好的了。
function loadSecondTab() {
    loadTab(2);
    $('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
    $('#tab2').addClass('selected');
}

$('#tab2').click(loadSecondTab);
$.post('http://example.com/ajax/form', $('form').serialize(), loadSecondTab);