数码资讯
jQuery的setTimeout传递字符串参数误差的解决方案
当你计划打一些jQuery代码元素的显示和隐藏,调用setTimeout()来设置HTML延迟一段时间后: 整个页面的代码如下所示。 复制代码代码如下所示: 显示下一个 是的,我是下一个。 功能shownext(文本){ setTimeout($(' #日志')。表明()(),文本(text) }
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
当你计划打一些jQuery代码元素的显示和隐藏,调用setTimeout()来设置HTML延迟一段时间后:
整个页面的代码如下所示。
复制代码代码如下所示:
显示下一个
是的,我是下一个。
功能shownext(文本){
setTimeout($(' #日志')。表明()(),文本(text)
}
显示()调用成功。但是文本()调用失败。控制台显示未定义文本。
对于这个问题我没有得到更好的答案。我认为jQuery改变了setTimeout()函数的内容,使变失败。
我接着做了下一个实验。
复制代码代码如下所示:
显示下一个
是的,我是下一个。
功能shownext(文本){
setTimeout(警报(文本)
}
我想看看jQuery是否真的有问题。这是同一个错误。
然后我们看了看那本书,发现了问题。
当setTimeout()接受一个字符串参数,它将在全球范围内,也就是说,它是位于外的任何功能。最简单的修复方法是使用本地函数(匿名函数)来解决这个问题。
复制代码代码如下所示:
显示下一个
是的,我是下一个。
功能shownext(文本){
setTimeout()函数({ $(' #日志')。显示(文本)(文本);},1000);
}
成功解决这个问题。
整个页面的代码如下所示。
复制代码代码如下所示:
显示下一个
是的,我是下一个。
功能shownext(文本){
setTimeout($(' #日志')。表明()(),文本(text)
}
显示()调用成功。但是文本()调用失败。控制台显示未定义文本。
对于这个问题我没有得到更好的答案。我认为jQuery改变了setTimeout()函数的内容,使变失败。
我接着做了下一个实验。
复制代码代码如下所示:
显示下一个
是的,我是下一个。
功能shownext(文本){
setTimeout(警报(文本)
}
我想看看jQuery是否真的有问题。这是同一个错误。
然后我们看了看那本书,发现了问题。
当setTimeout()接受一个字符串参数,它将在全球范围内,也就是说,它是位于外的任何功能。最简单的修复方法是使用本地函数(匿名函数)来解决这个问题。
复制代码代码如下所示:
显示下一个
是的,我是下一个。
功能shownext(文本){
setTimeout()函数({ $(' #日志')。显示(文本)(文本);},1000);
}
成功解决这个问题。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。