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

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

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

最佳答案

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

您还可以通过在其中放入一个更大的表达式来扩展它:

[ Math.random() > 0.5 ? "slideUp" : "slideDown" ]()

关于javascript - JQuery - 在链中随机调用 slideUp 和 slideDown,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30943218/

10-11 13:50