JavaScript:
$(document).ready(function(){
function sample() {
alert("This is sample function");
}
$("#button").click(function(){
t = setTimeout("sample()",2000);
});
});
HTML:
<input type="button" id="button" value="Call sample function with delay">
一旦我点击按钮,sample()函数不被调用与延迟2秒。我不知道是什么问题。
如何使用setTimeout()通过jQuery调用JavaScript函数?
解决方法
因为你在匿名函数中声明样例,你传递给准备好,它的作用域到那个函数。
然后将一个字符串传递给setTimeout,在2秒后对其进行求值。这发生在当前范围之外,因此它找不到该函数。
只传递函数到setTimeout,使用eval是低效的,很难调试。
setTimeout(sample,2000)