0

私は 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() の結果に干渉しません。しかし、私はより多くの情報に基づいた意見を求めています!

4

0 に答える 0