Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery.each()设置一组对象的动画_Javascript_Jquery_Coffeescript - Fatal编程技术网

Javascript 使用jquery.each()设置一组对象的动画

Javascript 使用jquery.each()设置一组对象的动画,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我试图通过如下方式传递参数,不断改变一组元素的颜色: colors = ['#e03d56', '#fecd6e', '#8fe1bf', '#9ab3f1'] i = 0 txtc = $('.text-cycle').css('color', '#e03d56') bgc = $('.bg-cycle').css('background-color', '#e03d56') changeColor = (ob) -> i++; i = i % 4 ac

我试图通过如下方式传递参数,不断改变一组元素的颜色:

colors = ['#e03d56', '#fecd6e', '#8fe1bf', '#9ab3f1']

i = 0
txtc = $('.text-cycle').css('color', '#e03d56')
bgc  = $('.bg-cycle').css('background-color', '#e03d56')

changeColor = (ob) ->     

    i++; i = i % 4
    action = {}

    $.each ob, ->
        action[this.toChange] = colors[i] 
        this.el.animate action, 8000, () -> 
            changeColor ob

heights '.max-image-place, .max-image'
changeColor [
    {el: txtc, toChange: 'color'}
    {el: bgc, toChange: 'backgroundColor'}
]
问题是,在动画的第一次迭代之后,作为关键点的元素“color”也会被设置为“backgroundColor”,我不明白为什么


有什么建议吗?

这是因为在循环
操作期间,
没有使用空对象重新初始化

拨弄

应该是:

colors = ['#e03d56', '#fecd6e', '#8fe1bf', '#9ab3f1']

i = 0
txtc = $('.text-cycle').css('color', '#e03d56')
bgc  = $('.bg-cycle').css('background-color', '#e03d56')

changeColor = (ob) ->
  i++; i = i % 4

  $.each ob, ->
    action = {}
    action[this.toChange] = colors[i]
    this.el.animate action,
        duration: 8000, complete: () -> changeColor ob

#heights '.max-image-place, .max-image'
changeColor [
    {el: txtc, toChange: 'color'}
    {el: bgc, toChange: 'backgroundColor'}
]

啊哈!谢谢,我知道这很简单!