我似乎错误地安装了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中看到了相同的行为。
答案 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>
这应该可以解决问题。