<script type="text/javascript">(document).ready(function() {$("button").click(function() {$("div").hide(2000,function() {alert("Hello JavaScript"); });});});</script>上面代碼的效果是以兩秒的效果隱藏div后,再執(zhí)行回調(diào)函數(shù),彈出”Hello JavaScript“,那下面這段代碼為什么不行?<script type="text/javascript">(document).ready(function() {$("button").click(function() {$("div").hide(2000);alert("Hello JavaScript");});});</script>JS不是單線程嗎? $("div").hide(2000);和 alert("Hello JavaScript");不應(yīng)是前者執(zhí)行完了,后者再執(zhí)行嗎?為什么前者的動(dòng)畫效果還沒執(zhí)行完,就執(zhí)行后面的代碼,難道是JS碰到動(dòng)畫之類效果的時(shí)候是拋給別的線程執(zhí)行的,它自身不執(zhí)行渲染之類的效果,所以它就立即執(zhí)行后面的代碼。
4 回答

Smart貓小萌
TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

郎朗坤
TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊
不是$("div").hide(2000); 先執(zhí)行完再執(zhí)行下面的。
如果效果都連在同一個(gè)jquery語(yǔ)句中,是可先執(zhí)行完一動(dòng)作,再另一動(dòng)作。
如$("div").hide(2000).show(2000).(其它的事件等操作);
這樣,后面的動(dòng)作會(huì)依次執(zhí)行。前面執(zhí)行完后再后面的。

臨摹微笑
TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
$("div").hide(2000);
alert("Hello JavaScript");
JS引擎確實(shí)是單線程,settimeout也只是模擬出一個(gè)假象。就上兩行代碼是不同步的這和單線程沒關(guān)系。
- 4 回答
- 0 關(guān)注
- 526 瀏覽
添加回答
舉報(bào)
0/150
提交
取消