我尝试创建自己的幻灯片供个人使用,我遇到了一个问题。
在我的jQuery插件中,我创建了一个操作我的插件的Object。代码的结构如下:
(
function($)
{
$.fn.wplSlider = function(options)
{
var slider = this;
var settings = $.extend(
{
'animationSpeed' : 750,
'animationEasing' : null,
'animationAutoStart': true,
'pauseTime' : 3500
},
options
);
var methods = {
animationRun : false,
totalSlides : 0,
init : function()
{
// This method initiating the slide show elements
},
slidesStatus : function()
{
// This method initiating the slides status
},
slideNumber : function()
{
// Assign a number to each slide
},
getSlidesAmount : function()
{
// Get the amount of slides
},
next : function()
{
// Prepare the next slide that will be displayed
},
prev : function()
{
// Prepare the next slide that will be displayed
},
goTo : function(item)
{
// Prepare the specified slide
},
slideOut : function()
{
// Slide out the current slide
slider.find('li[data-status="current"] .container').animate(
{
top : '-75px'
},
600
);
slider.find('li[data-status="current"] span, li[data-status="current"] a').animate(
{
opacity : 0
},
600
);
},
slideIn : function()
{
// Slide in the current slide
$('li[data-status="current"]').animate(
{
'opacity' : 1
},
650
);
}
}
/* Allow chainability */
return this.each(
function()
{
methods.init();
methods.slideOut();
methods.next();
methods.slideIn();
}
);
}
}
)(jQuery);
使用上面的代码,问题在于,当我执行slideOut / next / slideIn时,步骤非常快。
更具体地说,slideIn()与slideOut()同时执行。
有没有办法让slideO()在slideOut()完成后才能执行?
答案 0 :(得分:2)
有没有办法让slideIn()只在执行后才能执行 slideOut()完成了吗?
是的,您可以使用以下代码。
下面的代码将允许您运行slideIn()函数将在执行slideOut()函数时执行。
$.when(methods.slideOut())
.then(methods.slideIn());
的 Read more 强> 的