代码之家  ›  专栏  ›  技术社区  ›  Don Kirkby

使用scriptaculous时未定义效果

  •  4
  • Don Kirkby  · 技术社区  · 15 年前

    似乎我安装的脚本不正确,但我不知道出了什么问题。下面是一个例子来说明这个问题:

    <html>
    <body>
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js" type="text/javascript"></script>
    
    <p id="hello">Hello, World!</p>
    <a href="javascript:void(0)" onclick="Effect.Shrink('hello');">Shrink effect</a>
    <a href="javascript:void(0)" onclick="$('hello').shrink();">Shrink method</a>
    
    </body>
    </html>
    

    当我单击“收缩效果”链接时,我会得到一个javascript错误,“未定义效果”。当我单击“收缩方法”链接时,我会得到另一个错误“$”(hello)。收缩不是一个函数。

    如果我显式链接到效果脚本,问题就会消失:

    <html>
    <body>
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js" type="text/javascript"></script>
    <script src="js/effects.js" type="text/javascript"></script> <!-- Added -->
    
    <p id="hello">Hello, World!</p>
    <a href="javascript:void(0)" onclick="Effect.Shrink('hello');">Shrink effect</a>
    <a href="javascript:void(0)" onclick="$('hello').shrink();">Shrink method</a>
    
    </body>
    </html>
    

    这种解决方法是可以接受的,但是scriptaculous不能自动加载它的所有助手脚本吗?好像是 installation instructions 说它应该。

    我的HTML文件和JS文件夹不在Web服务器的根文件夹中,它们都在应用程序文件夹下。我在Firefox 3.5.7和Internet Explorer 8.0中看到了同样的行为。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Shane Bell    15 年前

    你需要把 <script> 中的定义 <head> 像这样的HTML文档:

    <html>
    
    <head>
    <script src="js/prototype.js" type="text/javascript"></script>
    <script src="js/scriptaculous.js" type="text/javascript"></script>
    </head>
    
    <body>
    
    <p id="hello">Hello, World!</p>
    <a href="javascript:void(0)" onclick="Effect.Shrink('hello');">Shrink effect</a>
    <a href="javascript:void(0)" onclick="$('hello').shrink();">Shrink method</a>
    
    </body>
    </html>
    

    这应该能解决问题。

    推荐文章