使用Scriptaculous时未定义效果

时间:2010-02-04 19:58:31

标签: scriptaculous

我似乎错误地安装了Scriptaculous,但我无法弄清楚出了什么问题。这是一个展示问题的示例:

<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 个答案:

答案 0 :(得分:3)

您需要将<script>定义放在HTML文档的<head>中,如下所示:

<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>

这应该可以解决问题。