JavaScript 错误:预期对象
JavaScript Error: Object expected
我有一个HTML页面,其中包含一个从右到左滚动文本的div;以下JavaScript位于文档的HEAD标签之间。
function scroll(oid, iid) {
this.oCont = document.getElementById(oid);
this.ele = document.getElementById(iid);
this.width = this.ele.clientWidth;
this.n = this.oCont.clientWidth;
this.move = function() {
this.ele.style.left=this.n + "px"
this.n--
if(this.n<(-this.width)){this.n=this.oCont.clientWidth}
}
}
var vScroll
function setup() {
vScroll = new scroll("oScroll", "scroll");
setInterval("vScroll.move()", 20);
}
onload = function(){
setup()
}
$("scroll").hover(function() {
$("scroll").stop(true, false)
}, function(){
scroll();
});
scroll();
滚动文本工作正常;但是我希望滚动在鼠标悬停时停止。尽管当鼠标光标经过div 时文本确实停止滚动,但我收到一个 javascript 错误"预期对象"。我是javascript的新手,不知道我哪里出错了。
任何帮助将不胜感激。
你的问题出在你的setInterval
上。 你正在传递它一个字符串! 这使得它使用eval
! 这意味着代码在全局范围内运行,因此vScroll
不存在。
相反,将函数传递给setInterval
:
setInterval(function(){
vScroll.move();
}, 20);
传递给setInterval
的函数在"context"(this
值)设置为null
的情况下被调用,因此你不能将vScroll.move
直接传递给setTimeout
。 但是,您可以。做:
setInterval(vScroll.move.bind(vScroll), 20);
但这并非适用于所有浏览器。
附言:将字符串传递给setInterval
是一种不好的做法,您应该始终传递一个函数。
相关文章:
- object响应时出现对象错误javascript
- Google嵌入API cb=gap对象错误
- JavaScript JSON对象对象错误
- JSON字符串到JavaScript对象错误
- Symfony2 JSON 对象 - 错误未捕获类型错误:无法使用“in”运算符搜索“636”
- 使用 Javascript 读取 JSON 对象(错误)
- 新的 $.fn.MyObject() 在 IE8 中触发“预期对象”错误
- 如何删除未定义的对象错误并根据位置重定向用户
- “'$' 为空或不是对象 ” 错误在 ajax 响应中
- 如何使用 AJAX 发布多个 JQuery 值并避免对象错误
- 我在IE移动版中使用计时器时收到[对象错误]
- IE8 中出现“需要对象”错误
- 存储为空或不是 dojo 中的对象错误
- IE 中需要 JavaScript 对象错误
- GSON 不是对象错误
- 如何使用TinyMCE和Internet Explorer 8解决“需要对象”错误消息
- 工作灯适配器 它不是一个函数,它是“对象”.错误
- IE8 - “为空或不是对象”错误
- 将小时数添加到 JavaScript 日期对象错误
- AJAX 请求导致“未定义不是对象”错误