这可能是个奇怪的问题,但我不确定最好的办法。
我正在使用JQuery ajax选项卡。选项卡部分是动态的,因此可以添加多个选项卡,因为内容是通过Ajax加载的,相同的内容可以加载到不同的选项卡中。另一个重要的细节是,我正在使用Cache选项,以便选项卡保持状态。
现在,当加载了多个选项卡时,就会出现问题。看起来像表单和div这样的HTML项在DOM中复制了id,因此Ajax查询不能再区分元素。结果是,任何JavaScript/Ajax都会中断。
有谁有办法解决这样的问题吗?
提前谢谢..。
发布于 2010-04-28 21:34:45
当ajax调用进行并返回时,您可以在加载到选项卡之前获取HTML并修改新选项卡内容的id。这将允许您拥有如下的ID:
tab1input1
tab1input2
tab2input1
tab2input2
编辑的
在http://jqueryui.com/demos/tabs/#ajax站点的演示中,这里的源代码显示了以下内容
<script type="text/javascript">
$(function() {
$("#tabs").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. If this wouldn't be a demo.");
}
}
});
});
</script>您应该通知set,您可以使用tab控件设置特定的ajax选项。请参阅jquery文档中关于$.ajax的文档。另一个选项是成功,它允许您在ajax调用成功之后运行一个函数。
使用“成功”选项
success: function (data) {
$("input", data).each( function () {
$(this).id(yourtabid + this.id);
$(this).name(yourtabid + this.name);
});
}这应该是一个ajax调用,返回HTML并修改html中的输入in和名称,并将tabid附加到新数据中。
https://stackoverflow.com/questions/2733272
复制相似问题