0

基本的にユーザーがリンクをクリックすると、一部のAJAXが移動して、以下に示すようにHTMLを返すメソッドを起動します。タイトルには、返されたデータが入っていないようですHTML、これが私のアコーディオンが作成されていない理由ですか? 画面に出力された結果が返されているのは奇妙です。

$(document).ready(function() {
    // hides the main_menu as soon as the DOM is ready
    // (a little sooner than page load)
    $('#main_menu').hide();
        // shows the slickbox on clicking the noted link  
        $('h3#show-menu a').click(function() {
                $('#main_menu').toggle('slow');
                    return false;
        });
//try and hide the left content when it is null
    $("#left-content:empty").hide();
    //style up the scroll bar
        $('#left-content').jScrollPane();

        //do some AJAX to call the method instead of the browser
        $("a.navlink").click(function (ev) {
            $(this).toggleClass("active");
            ev.preventDefault();
            var id = $(this).attr("id")
            if ($(this).hasClass("active")) {
               $("."+id).remove();
            }
            else {  
            //$(this).toggleClass("active");
                  var url = $(this).attr("href");
                    $.ajax ({
                        url:  url,
                        type: "GET",
                        success : function (html) {
                            $("#accordion").append(html);
                            $('#accordion').accordion({
                                active: 0,
                                header:'h2'
                            });
                            //alert(accordion())
                        }
                    });
            }
        });
  });

コードから収集できると確信しているように、返された HTML はに追加さ<div id="accordion>れ、アコーディオンに「変換」されますが、これは起こっていません。アコーディオンを提供する div にクラスが追加されるだけです。機能しますが、実際の機能は得られません。

AJAX が起動したかどうかに関係なくソースを表示すると<div id="accordion>、返されたデータを確認できてもコンテンツがないことに気付きました。どうすればアコーディオンを機能させることができますか?

=======AJAXによって返されるもの======

?php
if(isset($content)) {
//  var_dump($content);
    foreach($content as $row) {
        print "<h2 class='$row[category_name]'><a href='#'>$row[category_name]</a></h2>";
        print "<div class='$row[category_name]'>$row[content_title]</div>";
    }
}
?>

=========AJAX HTML の行き先=========

    <div id="right-content">
    <div id="accordion"></div>
</div>
4

2 に答える 2

2

ソースの表示には、マシンがダウンロードしたファイルのソースコードが表示されます。AJAXが変更される前のファイル。Javascriptで何をしても、ビューソースは変更されません(もちろん、新しいページに移動しない限り)。

現在のDOMがページをどのように検索するかを確認したい場合は、FirebugやIEDeveloperツールバーなどのツールを使用する必要があります。

于 2009-12-09T19:18:30.393 に答える
0

実際、Firefox の Firebug は必要ありませんが、firebug は素晴らしいツールです。変更する必要があると思われるフィールドを選択し、右クリックして [View Selection Source] を選択します (Firefox のみ)。

于 2009-12-10T08:46:12.770 に答える