问题描述
- 我修改了一个javascript函数,功能一样,但不能正常运行 。
-
原函数来自《Javascript DOM 编程艺术(第二版)》这里是原函数:
http://paste.ubuntu.com/8963863/
相对应的HTML代码和另外两个运行所需的函数如下:
HTML:
http://paste.ubuntu.com/8964733/
两个运行要调用的函数:
http://paste.ubuntu.com/8964726/
http://paste.ubuntu.com/8964748/以下是我修改之后的函数,我检查后觉得没有问题,但不能运行,不知道是哪里错了,
解决方案
setTimeout第一个参数是字符串时,你的函数需要是全局作用域下能访问到的,你那样申明只能在moveElement2中访问到
moveElement 改成下面这样
window.moveElement = function (elementID, final_x, final_y) {
或者setTimeout的repeat参数改成这样
var repeat = function () { moveElement(e,f,g)}; // "moveElement('" + e + "'," + f + "," + g + ")";
setTimeout(repeat, h);
解决方案二:
你在浏览器按F12打开开发者工具,在控制台看看有没有错误。
你positionMessage调用的是moveElement,但moveElement是moveElement2函数内的,不能调用。
另外你moveElement2再封装一层目的是什么?你也没给setTimeout传入时间间隔参数。
解决方案三:
上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢!
时间: 2025-01-21 08:06:30