关于setTimeout中函数未定义的问题

buqibushe buqibushe 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,我现在实现一个当鼠标移动到该对象上时,对象慢慢的向右移,当离开对象时,慢慢地向左移,即还原原来的位置,代码如下:

var left_most = -145;
var right_most = 10;
var the_timeout = null;

$('#slider_menu').mouseover(function(){ // to right
clearTimeout(the_timeout);
the_timeout = setTimeout("slideToRight();", 1);
}).mouseout(function(){// to left
clearTimeout(the_timeout);
the_timeout = setTimeout("slideToLeft();", 5000); //5s后开始往左移
});

function slideToRight()
{
var left_pos = parseInt($('#slider_menu').css("left"));
//alert(left_pos);
if (left_pos > right_most) {
clearTimeout(the_timeout);
return;
} else {
left_pos += 1;// 坐标加5px
left_pos += 'px';
//alert(left_pos);
$(this).css("left", left_pos);
the_timeout = setTimeout("slideToRight();", 1);//调用本身,继续移动,直到right_most
}
}

function slideToLeft()
{
var left_pos = parseInt($('#slider_menu').css("left"));
//alert(left_pos);
if (left_pos < right_most) {
clearTimeout(the_timeout);
return 0;
} else {
left_pos -= 5; // 坐标减5px
left_pos += 'px';
//alert(left_pos);
$(this).css("left", left_pos);
the_timeout = setTimeout("slideToLeft();", 1);//调用本身,继续移动,直到left_most

}
}


在用firebug调试时,出现
slideToRight is not defined
[在此错误处中断] the_timeout = setTimeout("slideToRight();", 1);
slideToLeft is not defined
[在此错误处中断] the_timeout = setTimeout("slideToLeft();", 5000);

所有的类似的这种句子都提示出错
但是我很明显已经定义了,为什么会提示不对呢?是不是函数的作用域不同?或者setTimeOut中有何特定的设置,这个代码我是基于jquery,之前用原生的javascript写过,是可以用的!多谢大家了
...全文

相关推荐

jQuery setTimeout传递字符串参数报错的解决方法

主要介绍了jQuery setTimeout传递字符串参数报错的解决方法,需要的朋友可以参考下

weixin_38523618

javascript setTimeout()传递函数参数(包括传递对象参数)

由于需要,我要用到setTimeout()并且在里边的函数参数传递一个参数,就像这样setTimeout("fun(参数)", 1000)。但是以我这种写法,js会报错,说‘参数’未定义。

weixin_38516040

vue 解决setTimeOut和setInterval函数无效报错的问题

1.在vue项目中的js代码语法与之前使用js和jquery还是有所出入的,现遇到一个点击按钮出现倒计时30S的效果 相信大家对着两个函数都陌生,就是一个定时器,setTimeOut只执行一次,而setInterval会重复执行 需要注意的是:在setInterval不用的时候一定要用clearSetInterval关闭定时器。 2.按照最原始的倒计时效果,实现如下: //获取30s 控制操作倒计时 time(){ if(this.timeWait &lt;= 0){ this.timeWait = 0; return; }else{ this.time

weixin_38685173

详解JS中定时器setInterval和setTImeout的this指向问题

在js中setTimeout和setInterval都是用来定时的一个功能,下面这篇文章主要给介绍了JS中setInterval和setTImeout的this指向问题,文中通过示例介绍的很详细,有需要的朋友可以参考借鉴,一起来看看吧。

weixin_38665122

关于JS中setTimeout()无法调用带参函数问题的解决方法.docx

关于JS中setTimeout()无法调用带参函数问题的解决方法.docx

惚如远行客
评论 5
收藏 已收藏
分享
返回顶部
buqibushe
JavaScript 87,983 成员 224,681 内容