Javascript 如何阻止jquery为每个类成员运行一次脚本
我有以下代码:Javascript 如何阻止jquery为每个类成员运行一次脚本,javascript,jquery,class,fadeto,Javascript,Jquery,Class,Fadeto,我有以下代码: function fadeIn() { $(".home_photo").fadeTo(1000, 1.0 ).delay(5 * 1000); fadeOut(); } function doSwap() { console.log('Swap'); ... There is some Ajax Code here that swaps the image in the divs ... fadeIn();
function fadeIn()
{
$(".home_photo").fadeTo(1000, 1.0 ).delay(5 * 1000);
fadeOut();
}
function doSwap()
{
console.log('Swap');
... There is some Ajax Code here that swaps the image in the divs ...
fadeIn();
}
function fadeOut()
{
$(".home_photo").fadeTo(1000, 0.01, doSwap );
}
$(document).ready(function(){
fadeOut();
});
以下是与之配套的HTML:
<body>
<div id="photowrapper">
<div class="home_photo" id="img1"></div>
<div class="home_photo" id="img2"></div>
<div class="home_photo" id="img3"></div>
<div class="home_photo" id="img4"></div>
</div>
</body>
jQuery脚本为类“home\u photo”的每个成员运行一次。问题在于,doSwap函数在每个交换周期(淡出、doSwap、fadeIn)运行4次。我需要做什么才能使脚本每次交换只运行一次,而不是对每个类成员运行一次?如果希望在fadeTo()
完成后运行doSwap()
,可以使用jQuery deferred对象来控制该过程:
$.when(function() {
var deferred = $.Deferred();
$(".home_photo").fadeTo(1000, 0.01, function(){
deferred.resolve();
});
return deferred;
}).then(function(){
doSwap();
});
函数fadeOut(){$(“.home\u photo”).fadeTo(1000,0.01);doswap()}
您不必自己延迟或解决它,因为jQuery将为您制作一个涵盖动画的函数:$(.home\u photo”).fadeTo(1000,0.01)。promise()。然后(doswap)
@jfriend00,啊!甚至更好。