我在 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>
called <div id="details">
,默认情况下它们都是向上滑动并看不见的。我现在希望在单击每个按钮时使它们向下滑动。当然是一个<div>
打开的那个必须先向上滑动并移出视线,然后再将新的滑下。这就是为什么我尝试了上面这个简单的回调函数。
(The page
变量包含其中之一的 iddiv
的,就像#info
or #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");
});
};
};
工作示例:http://jsfiddle.net/cm3pv/6/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)