我有以下代码,我循环遍历img元素,并希望随机应用slideUp()和slideDown()jquery效果:
$c.each(function(){
$(this).find('img:gt(0)').hide();
setInterval(function () {
$(this).find(':first-child')
.[sometimes slideUp(), sometimes slideDown()] // <<<
.next('img')
.fadeIn()
.end()
.appendTo(this)
}.bind(this), 3000 + Math.random()*4000); // 4 seconds
});
我不能将函数放在数组中,因为它们作为元素对象方法存在。我也试过扩展元素对象来添加我的属性,但它也没有很好用,也没有其他一些方法。
那么,关于如何依次或随机执行两个不同的回调的任何想法?
答案 0 :(得分:7)
您可以使用数组语法引用属性。因此["slideUp"]()
会调用.slideUp()
。
您还可以通过在内部放置一个更大的表达式来扩展它:
[ Math.random() > 0.5 ? "slideUp" : "slideDown" ]()