私がしたいのは、クリックしたオプションに応じて #newPage にコンテンツを動的にロードしたい JQuery Mobile を使用することです。以下は、私が試したコードで、#newPage に移動しますが、コンテンツは読み込まれません。私はできるだけ多くの情報を提供しようとし、何をしたいのかを行ごとにコメントしました。
サンプル XML:
<parentOption>
<option1>
<name>Stuff</name>
</option1>
<potion2>
<name>More Stuff</name>
</potion2>
<option3>
<name>Even More Stuff</name>
</option3>
</parentOption>
Ajax 経由で XML ファイルに接続したとします。
<script>
function parseXML(xml) { //Parse the XML
$('selected').click(function(e) { //Once the link is clicked
var selectedValue = $(this).value(); //Find the value of the clicked link
e.preventDefault(); //Refresh the new page
$(xml).find(selectedValue).each(function() { //take the XML info and select all of the elements equaling to the value of the selected link
var nameValue = $(this).parent(); //Find the parent of the selected element
$('#dynamicList').append('<li>' + $(nameValue).child('name').text() + '</li>'); //Write out the list on the new page
});
$('#dynamicList').listview('refresh');
});
}
</script>
<div data-role="page" id="home">
<div data-role="content">
<ul data-role="listview">
<li><a class="selected" value="option1" href="#newPage">Option 1</a></li>
<li><a class="selected" value="option1" href="#newPage">Option 2</a></li>
<li><a class="selected" value="option1" href="#newPage">Option 3</a></li>
</ul>
</div>
</div>
<div data-role="page" id="newPage">
<div data-role="content">
<ul id="dynamicList" data-role="listview">
</ul>
</div>
</div>
最初のリンクをクリックした後の目的の出力は次のとおりです。
<div data-role="page" id="home">
<div data-role="content">
<ul data-role="listview">
<li><a class="selected" value="option1" href="#newPage">Option 1</a></li>
<li><a class="selected" value="option1" href="#newPage">Option 2</a></li>
<li><a class="selected" value="option1" href="#newPage">Option 3</a></li>
</ul>
</div>
</div>
<div data-role="page" id="newPage">
<div data-role="content">
<ul id="dynamicList" data-role="listview">
<li>Stuff</li>
</ul>
</div>
</div>