为什么我的jQuery代码段使用for each类不支持setTimeout
Why does my jQuery snippet using for each class not support setTimeout?
由于某些原因,下面的代码不起作用,它不喜欢setTimeout部分,相反,我唯一能做的工作版本是没有延迟。。。
jQuery(".divhere").hide();
if(jQuery('.divhere').length >= 1){
jQuery(".divhere").each(function() {
setTimeout(function(el) {
jQuery(this).slideDown("slow");
jQuery(this).show();
}, 1000);
});
}
唯一有效的是:
jQuery(".divhere").hide();
if(jQuery('.divhere').length >= 1){
jQuery(".divhere").each(function() {
jQuery(this).slideDown("slow");
jQuery(this).show();
});
}
setTimeout
场景中缺少this
上下文。如果您尝试在setTimeout
中查找console.log(this)
,您会发现window
对象。
使用
.bind
:JavaScript的绑定允许我们在方法上设置此值
试试这个:
jQuery(".divhere").hide();
if(jQuery('.divhere').length >= 1){
jQuery(".divhere").each(function() {
setTimeout(function(el) {
jQuery(this).slideDown("slow");
jQuery(this).show();
}.bind(this), 1000);
});
}
相关文章:
- 任何浏览器都不支持javascript函数
- 对象不支持属性或方法“自动完成”
- 对象没有'不支持set_viewXML
- 您的平台不支持RxJS-Array.observe
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- 415(不支持的媒体类型)错误
- 字符串替换-不支持格式字符'}'
- CSS3卡翻转动画,检测是否不支持
- IE中不支持JQuery window.location.hash
- javascript表单字段submit:Object dos'在IE8中不支持此属性或方法
- 对象不支持对象IE 8
- 不支持Three.js FBX二进制格式
- 使用gmail-api发送电子邮件错误:此api不支持解析表单编码的输入
- 如何在不支持HTML字符的邮件正文中发送%签名
- 在粘贴到文本字段Jquery时检查并突出显示不支持的特殊字符
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- JSHint 错误“对象不支持此属性或方法”用于 javascript 闭包
- 对象不支持属性或方法“确认”
- 为什么我的jQuery代码段使用for each类不支持setTimeout