以编程方式在jQuery Tab中重新加载ajax内容

我对编程很新,所以请原谅我的无聊。 我正在为我的应用程序使用优秀的jQuery选项卡,我通过ajax将外部内容加载到选项卡中,并且在其中一个选项卡中,我需要以编程方式重新加载该选项卡的内容。 我按照文档*无效。

我已经在我的根页面初始化了标签,非常简单:

使用Javascript:

$(document).ready(function(){ $("#tabs").tabs({ cookie: { expires: 30 } }); }); 

HTML:

  

你可以看到我加载了一个“flaggedCards /”的外部URL在那里我有更多的jQuery与这个function:

  $(document).ready(function(){ $("#controls_{{id}} input").click(function() { $(this).parent().parent().parent().addClass("highlight").fadeTo("slow", 0.1); $("#tabs").tabs( 'load' , 0 ); // fails also tried various selectors }); }); 

我正在尝试做的是,当调用该函数时调用flaggedCards选项卡重新加载,我尝试了各种不同的语法无济于事。

  • docs.jquery.com/UI/API/1.7.1/Tabs#method-load

我能够复制您在post中报告的完全相同的问题。 这就是我最终解决它的方式。

在托管选项卡的根页面中,添加以下function:

 function selectTab(index){ $("#tabs").tabs('load', index); } 

然后在您的外部url页面“flaggedCards /”中,替换说明的行:

 $("#tabs").tabs( 'load' , 0 ); 

有了这个:

 selectTab(0); 

我不知道为什么这个解决方法可以解决问题。 也许这是一个错误。

要执行脚本,您必须确保ajax请求的数据类型为“html” – 请参阅$ .ajax选项 。 要执行此操作,请在设置选项卡时尝试选项卡ajaxOptions选项。

 $("#tabs").tabs({ cookie: { expires: 30 }, ajaxOptions: {dataType: "html"} }); 

另一个问题可能是$(document).ready(function(){当通过ajax加载选项卡内容时可能没有触发。尝试删除它和相应的} 。当它通过ajax加载你的内容时,希望它会在文件出现之前将其插入文档中。

我没有想法。 希望有所帮助:-)

我应该提一下,它正在运行它加载的html中的脚本,请参阅addclass函数,该函数运行正常,但是在运行之后它不会使用我输入的代码重新加载选项卡。 我会尝试添加该数据类型。