JQuery - 在链中随机调用slideUp和slideDown

Dav*_*vit 3 javascript jquery

我有以下代码,我循环通过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
});
Run Code Online (Sandbox Code Playgroud)

我不能将函数放在数组中,因为它们作为元素对象方法存在.我也尝试扩展元素对象来添加我的属性,但它也没有很好用,也没有其他一些方法.

那么,关于如何依次或随机执行两个不同的回调的任何想法?

Str*_*ner 7

您可以使用数组语法引用属性.所以["slideUp"]()会打电话.slideUp().

您还可以通过在内部放置一个更大的表达式来扩展它:

[ Math.random() > 0.5 ? "slideUp" : "slideDown" ]()
Run Code Online (Sandbox Code Playgroud)

  • 嘿,那太可爱了![这里的例子](http://jsfiddle.net/ydv4wam5/). (3认同)