基本的にユーザーがリンクをクリックすると、一部の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>