0

这可能被证明是一个非常幼稚的问题,因为我刚开始使用 jQueryUI,但最好问一个愚蠢的问题,而不是疯狂地试图找出一个不属于我的错误。最终,我试图生成一个动态的项目列表,这些项目将作为 JQUI 手风琴显示给用户 - 问题是,它永远不会起作用。

我对文档的阅读(包括谷歌认为这应该在 Caja / GAS 沙箱中工作)是这应该会产生 10 个“行”的手风琴优点。但在实践中,只有三个转换为手风琴风格,而其余的则保持原来的无聊格式。控制台中没有出现任何内容 - 没有错误、警告等。但是,相同的 HTML 部分确实在纯粹的客户端工作,因此我担心沙盒/语法问题。

我哪里错了?

请参阅以下来自 Google Apps 脚本项目的示例代码:

代码.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" });

它莫名其妙地工作,就像(否则)预期的那样。我最好的猜测是,这与 Caja 的解析器在 jQueryUI 要求所有“#accordion”的 children() 时发回一些时髦的东西有关,但这不会干扰 .find() 结果。不过,我全都在寻求更明智的意见!

4

0 回答 0