看看这个code http://jsfiddle.net/5H9XT/5/ :
<a href="#" id="link">Link</a>
<span>Moving</span>
$('#link').click(function () {
console.log("Enter");
$('#link').animate({ width: 200 }, 2000, function() {
console.log("finished");
});
console.log("Exit");
});
正如您在控制台中看到的,“animate”函数是异步的,它“分叉”了事件处理程序块代码的流程。实际上 :
$('#link').click(function () {
console.log("Enter");
asyncFunct();
console.log("Exit");
});
function asyncFunct() {
console.log("finished");
}
遵循块代码的流程!
如果我想创建我的function asyncFunct() { }
对于这种行为,我该如何使用 javascript/jquery 来做到这一点?我认为有一种策略不使用setTimeout()
您无法创建真正的自定义异步函数。您最终将不得不利用本机提供的技术,例如:
setInterval
setTimeout
requestAnimationFrame
XMLHttpRequest
WebSocket
Worker
- 一些 HTML5 API,例如文件 API、Web 数据库 API
- 支持的技术
onload
- ... 好多其它的
其实对于动画jQueryuses https://github.com/jquery/jquery/blob/master/src/effects.js#L475 setInterval
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)