通过ajax加载内容后不触发jquery选项卡

通过ajax加载内容后不触发jquery选项卡,ajax,jquery,jquery-tabs,Ajax,Jquery,Jquery Tabs,我有一个索引页面,其中包括jquery.js和jquery.tabs.js。 此页面通过ajax将内容加载到一个页面中。内容是一组选项卡及其内容,在加载内容的底部,我调用了tabs()。 在FF中,它仅在刷新索引页后加载内容时起作用,如果点击链接重新加载内容,它将停止工作。在IE中,它根本不起作用 这些是我的标签: <ul id="horz-tabs"> <li><a href="#tab1">tab1</a></li> <l

我有一个索引页面,其中包括jquery.js和jquery.tabs.js。 此页面通过ajax将内容加载到一个页面中。内容是一组选项卡及其内容,在加载内容的底部,我调用了tabs()。 在FF中,它仅在刷新索引页后加载内容时起作用,如果点击链接重新加载内容,它将停止工作。在IE中,它根本不起作用

这些是我的标签:

<ul id="horz-tabs">
 <li><a href="#tab1">tab1</a></li>
 <li><a href="#tab2">tab2</a></li>
 <li><a href="#tab3">tab3</a></li>
</ul>
然后我有以下容器,在通过ajax加载的页面的最后,我有:

<script type="text/javascript"><!--
 $('#horz-tabs a').tabs(); 
//--></script>

我的ajax函数正确加载页面。我想知道如何解决这个问题。谢谢你的帮助和建议

ajax加载函数如下所示

<script>

    function async(target, href) {          
    var loading = '<div class="loading">Loading</div>';  
      jQuery.ajax({
        url: href,
        beforeSend: function() {
            $(target).prepend(loading);
        },
        error: function() {
            $(target).html("<span class='error'>Failed</span>");
        },

        success: function(results) {
            $(target).html(results);
        }
    })
}

</script

函数异步(目标,href){
变量加载=‘加载’;
jQuery.ajax({
url:href,
beforeSend:function(){
$(目标)。预结束(加载);
},
错误:函数(){
$(target.html(“失败”);
},
成功:功能(结果){
$(目标).html(结果);
}
})
}

看起来您是通过ajax加载tab html,这可能是问题所在,因为当脚本运行dom时,tab元素可能不存在

因此,您需要成功回调异步加载方法,并添加execute
$(“#horz tabs a”).tabs()

function async(target, href) {
    var loading = '<div class="loading">Loading</div>';
    return jQuery.ajax({
        url : href,
        beforeSend : function() {
            $(target).prepend(loading);
        },
        error : function() {
            $(target).html("<span class='error'>Failed</span>");
        },

        success : function(results) {
            $(target).html(results);
        }
    });
}

可以尝试
$(function(){$('#horz tabs a').tabs();})
以确保文档已准备就绪。您所说的
此页面通过ajax将内容加载到
中是什么意思?您能否共享ajax加载代码also@NathanBouscal我试过了,但没有result@ArunPJohny抱歉,通过ajax进入了一个新的应用程序。这很奇怪,它只工作一次。当我刷新整个页面(索引)并通过单击ajax链接加载内容时,它可以工作,如果我再次单击同一链接,它就不会工作。
async('some-div', 'tab-url').done(function(){
    $('#horz-tabs a').tabs(); 
})