0

出力されたページからソースコードを以下のファイルにコピーしたので、私が話していることがわかります。

http://playerspace.com/mysource.html

私たちが見ているのは、最近のアクティビティ ajax です (何らかの理由で、この出力されたバージョンでは動作しません)。コードを見るだけで十分に診断できることを願っています。

とにかく問題は、拡張テキスト領域を明らかにするアコーディオンである「コメント」リンクです。タイムラインの次の 5 つの項目の ajax ロードの後、コメント リンク (それらの一部またはすべて) が完全に応答しなくなります。

アコーディオン コードを ajax 呼び出しに直接追加しようとしましたが、それでも一貫して実行できません。

    $(document).on("click",'.siteusemore',function()
    {
    var ID = $(this).attr("id");
    var myscript = window.siteusemore_script || null;       
    if(ID)
    {
    $("#siteusemore"+ID).html('<img src="/images/processing.gif" />');                  
    $.ajax({
    type: "POST",
    url: myscript,
    data: "lastmsg="+ ID, 
    cache: false,
    success: function(html){                                    
        $("ol#siteuseupdates").append(html);                                            
        $("#siteusemore"+ID).remove();
        $('.accordionContent,.accordionContent-settings').hide();   
        $('.accordionContent,.accordionContent-manuallyadd').hide();                                
        $('.accordion-comments').live("click",function(event){
        var target=$(this).attr('href');
        if($(target).css('display')=='none')
        {
            $(target).show();
            $(this).text('Hide Comments');
        }
        else
        {
            $(target).hide();
            $(this).text('Comments');
        }
        return false;
        });                         
    }
    });
    }
    else
    {
        $(".siteusemorebox").html('The End');
        $('.accordionContent,.accordionContent-settings').hide();   
        $('.accordionContent,.accordionContent-manuallyadd').hide();                                
        $('.accordion-comments').live("click",function(event){
        var target=$(this).attr('href');
        if($(target).css('display')=='none')
        {
            $(target).show();
            $(this).text('Hide Comments');
        }
        else
        {
            $(target).hide();
            $(this).text('Comments');
        }
        return false;
        });                         
    }               
    return false;
});

私は ajax を使い始めたばかりで、ここでヘルプを使用できます。私の問題は、site.js ファイル (ページの下部にあります) で実行されるコードを取得して、各 ajax ロードで一貫して起動することだと思いますか?

また、これが役立つかどうかはわかりませんが、他のすべての ajax 呼び出しで問題が発生しているようです。これは奇妙です。

4

1 に答える 1

0

アコーディオンを再起動する必要があると思います。次のコードを成功の ajax コール コールバックに追加します。

$("#accordion").accordion("destroy");
$("#accordion").accordion({collapsible: true,header: "h3",active: false});

これにより、正しい div にアコーディオンが適用されます。ヘッダー div を「h3」に置き換えてください。

于 2013-01-31T11:05:36.173 に答える