私は現在、jQuery、jQuery mobile、および多くのXMLを使用するPhoneGapアプリケーションに取り組んでいます。これに取り組み始めた人はもういないので、これは私に渡されました(しかし、私はそれには入りません)。さて、概要... XMLファイルから読み取り、返されたデータを使用して、利用可能な製品の画像と情報を挿入するページがあります。ユーザーがこれらの画像の1つをクリックすると、ダイアログが表示されます...これは簡単です。次を使用するだけです(ダイアログはページ内のdivであり、個別のファイルではありません)
$('#entry_level_phones img').live("click", function(){
$.mobile.changePage("#popupEntry", { role: "dialog"});
});
さて、これを拡張したいので、特定の画像をクリックすると、同じXMLファイルを読み取り、選択した製品に関する詳細情報を取得します。この情報はフォーマットされ、innerHTMLとしてダイアログdivに挿入され、表示されます...そのようなもの...
$('#entry_level_phones img').live("click", function(){
// I know the ID of what was clicked using this.id!
$.ajax({
type : 'GET',
url : 'hardware.xml',
dataType : 'xml',
success : getProduct(this.id)
});
});
function getProduct(productID){
productContent = "";
// code to parse through XML and format using the passed productID to locate the relevent info
productContent = outFromParsingData;
$("#popupEntry").html(productContent);
$.mobile.changePage("#popupEntry", { role: "dialog", "test":"test" });
}
ここで問題となるのは、関連するID(this.id)を成功コールバックに渡す必要があることです。通常は、関数名を指定するだけで、ajax呼び出しから返されたxmlが渡されます(方法と理由はまだわかりません)。
success : getProduct // this is ajax call
getProduct(xml) // here's the returned xml passed as an argument
上記の修正により、返されたXMLを読み取ることはできますが、選択したIDがありません...最後に質問です... idとxmlをgetProduct関数に渡すにはどうすればよいですか?どうもありがとう。