我在jQuery中有这个简单的功能:
function detailspage(page) { if (page != checkcurrent) { checkcurrent = page; $('div#details').children("div").slideUp("slow",function() { $('div#details').children("div"+page).slideDown("slow"); }); }; };
我已经把三个÷>的内部放在另一个< div>被称为< div id =“details”>并且它们都被默认地滑出并且不在视线内.我现在希望让他们每个人滑下来,当他们中的每个按钮被点击.当然,< div>这是开放的,必须首先在新的一轮下滑之前,才能被摆脱视线.这就是为什么我已经尝试过这个简单的回调函数.
(页面变量包含一个div的id,如#info或#cast_crew.)
除了似乎没有造成任何延迟的回调函数之外,这一切都起作用.回调没有效果.当当前框的幻灯片完成时,我只想要新框的开始.
哪里不对?为什么我的回调不工作?
谢谢.
解决方法
我将看看jquery中的promise函数,以确保所有元素都完成了动画:
http://api.jquery.com/promise/
例如:
function detailspage(page) { if (page != checkcurrent) { // so we only have to search the dom once var details = $('div#details'); checkcurrent = page; details.children("div").slideUp("slow").promise().done( function() { $('div' + page).slideDown("slow"); }); }; };