正如您在此site上所看到的,在表單部件之間,多個轉換髮生在幾個div
元素的鏈中。jQuery中承諾的級聯鏈轉換
但是,必須在鏈中執行轉換,即,當前一轉換完成其對應元素時,下一轉換正好前進。因此,人們需要使用.promise().done()
一個例子:
$("#p1").slideUp("slow", function(){
$("#description").
html(DescriptionHTML).
slideDown("fast", function(){
$("#div1, #div3").
hide().
promise().
done(function(){
$("#div1_td, #div3_td").
show().
promise().
done(function(){
$("#p2").
slideDown("slow", function(){
$("#div1, #div3").
show("slow").
promise().
done(function(){
scrollPage();
});
});
});
});
});
});
是否有上述代碼的用戶友好的捷徑嗎? 喜歡的東西:
.SyncChain({
step1: function(){
$("#p1").slideUp("slow");
},
step2: function(){
$("#description").html(DescriptionHTML).slideDown("fast");
},
step3: function(){
$("#div1, #div3").hide();
},
step4: function(){
$("#div1_td, #div3_td").show();
},
step5: function(){
$("#p1").slideDown("slow");
},
step6: function(){
$("#div1, #div3").show("slow").
}
});
我認爲,頁面高度會縮小,並且不會在良好的用戶體驗中擴展,您最好使用fadeIn和fadeOut –
@RaviDelixan,取決於您想要的效果 –