jQuery - 随机调用slideUp和slideDown连续执行

3
我有以下代码,其中我循环遍历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
});

由于函数存在于元素对象方法中,因此我无法将它们放在数组中。我还尝试扩展元素对象以添加我的属性,但这也没有成功,其他一些方法也没有奏效。

那么,有什么想法可以轮流或随机执行两个不同的回调函数吗?


您可能需要在$.each()中使用迭代器并有条件地使用slideUp()slideDown() - area28
1个回答

7
您可以使用数组语法引用属性。因此,["slideUp"]()将调用.slideUp()
您还可以通过在内部放置更大的表达式来扩展此内容:
[ Math.random() > 0.5 ? "slideUp" : "slideDown" ]()

我得到了“Uncaught SyntaxError: Unexpected token [”错误。 - showdev
@showdev 我的错误。我不小心以 .[ 开始了表达式。它不应该有 . - Stryner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接