我将jquery用于ajax标签,而不是jquery UI,这对我来说很大 下面的代码是我的ajax选项卡,它使用外部文件加载选定的选项卡
我也有一个for使用ajax将数据发布到此页面HOMEfriendstatus.inc.php,这是#tab2
我提交表单时想知道的是什么,无论用户在屏幕上加载了什么标签,我都可以重新加载或更改为#tab2以显示#tab2的更新内容吗?
<script type="text/javascript">
var pageUrl = new Array();
pageUrl[1] = "HOMEbulletin.inc.php";
pageUrl[2] = "HOMEfriendstatus.inc.php";
pageUrl[3] = "HOMEbulletin.inc.php";
function loadTab(id){
if (pageUrl[id].length > 0){
$("#loading").show();
$.ajax({url: pageUrl[id], cache: false, success: function(message) {
$("#tabcontent").empty().append(message);
$("#loading").hide();
}
});
}
}
$(document).ready(function(){
/*$("#tab1").addClass('selected');*/
$("#loading").hide();
$("#tab1").click(function(){
loadTab(1);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
$("#tab2").click(function(){
loadTab(2);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
$("#tab3").click(function(){
loadTab(3);
$('div.HOMEtabdiv ul.HOMEtabs a').removeClass('selected');
$(this).addClass('selected');
});
});
</script>
答案 0 :(得分:1)
您是否尝试在成功回调表单中运行loadTab(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").click()
函数的代码,因此在这种情况下您应该考虑使用命名函数而不是匿名函数,并在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);
PS。 jQuery UI不是太大。您不必使用所有位。您可以轻松加载标签模块。