私は jQueryUI を使い始めたばかりなので、これは非常に素朴な問題であることが判明するかもしれませんが、私のものではないバグを見つけようとして気が狂うよりも、愚かな質問をする方がよいでしょう。最終的に、JQUIアコーディオンとしてユーザーに表示されるアイテムの動的リストを生成しようとしています-問題は、それが機能しないことです。
ドキュメント (これは Caja / GAS サンドボックスで動作するはずであるという Google を含む) を読んだところ、これにより 10 の「行」のアコーディオンが得られるはずです。ただし、実際には、アコーディオン スタイルに変換するのは 3 つだけで、残りは元の退屈な形式のままです。コンソールには何も表示されません - エラー、警告などはありません。ただし、同じ HTML 部分が純粋にクライアント側で機能するため、サンドボックス化/構文の問題が懸念されます。
どこが間違っていますか?
Google Apps Script プロジェクトの次のサンプル コードをご覧ください。
code.gs:
function doGet()
{
return HtmlService.createTemplateFromFile('myHtml.html').evaluate();
}
myHtml.html:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.8.23/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/ui-lightness/jquery-ui.css" type="text/css" />
<script>
function createAccordion()
{
var html = "";
for (var i = 0; i< 10; i++)
{
html += "<h3><div>Heading " + i + "</div></h3><div>Body " + i + " </div>\n";
}
console.log(html);
$("#accordion").html(html);
$("#accordion").accordion();
}
$(document).ready(function(){
console.log("Hello, world!");
createAccordion();
});
</script>
</head>
<body>
<div id="accordion">Stuff</div>
<p>Hello!</p>
</body>
</html>
編集: 奇妙なねじれ - アコーディオンを次のように初期化すると:
$("#accordion").accordion({ header: "h3" });
不可解なことに、(そうでなければ) 予想どおりに機能します。これは、jQueryUI が "#accordion" の children() のすべてを要求したときに、Caja のパーサーがファンキーなものを送り返すことと関係があると思われますが、これは .find() の結果に干渉しません。しかし、私はより多くの情報に基づいた意見を求めています!