2014-11-16 112 views
2

我是新來的HTML/CSS/jQuery,並且正在做一個毫無意義的項目,試圖熟悉一些基本功能。我想單擊表格中的各個單元格來更改其他單元格的屬性,通過顏色循環。在jquery中循環顏色

我試過從這個答案採取指導:Cycle through multiple background colors - Seeking code improvement,但我的嘗試都失敗了。繃將是最簡單的,但是這顯然不再是一個東西,我想不通爲什麼我的替代解決方案(通過這個工作小提琴啓發:http://jsfiddle.net/amantur/pqyxM/8/)不工作:

var main = function() { 
    var colors = ['blue', 'red', 'yellow', 'purple', 'green']; 
    var ln = colors.length; 

    $('#textswitch').click(function() { 
     var i = $('#holder').data('index'); 
     ++i; 
     if (i >= ln) i = 0; 
     $('texty').css('color', colors[i]); 
     $('#holder').data('index', i); 
    }); 
}; 
$(document).ready(main); 

我懷疑我犯了一些可怕的罪行,比如混合使用JavaScript和jQuery元素,但我不知道還有什麼可以解決的。對此有多瞭解的人能對此有所瞭解嗎?我的小提琴在這裏:http://jsfiddle.net/sishu7/mq7jgjgL/2/,但顯然這部分是不工作。

+0

那麼,這個代碼*應該*工作。你有沒有爲我們工作的小提琴? –

+0

這裏:http://jsfiddle.net/mq7jgjgL/4/ –

+1

這段代碼也適用於我:-) – jyrkim

回答

1

試試這個:

var main = function() { 
    var colors = ['blue', 'red', 'yellow', 'purple', 'green']; 
    var ln = colors.length; 
    var curr = 0; 
    $('#textswitch').click(function() { 
     $('.texty').css('color', colors[curr]); 
     $('#holder').data('index', curr); 
     curr++; 
     if (curr >= ln) 
      curr = 0; 
    }); 
}; 
$(document).ready(main); 

Fiddle

您還你選擇texty之前缺少.

+0

工作原理 - 非常感謝!現在索引被存儲在curr中,但是,是否有必要將它作爲數據索引屬性附加到#holder? – IlanaWB

+0

不是我能想到=)比在DOM元素中更容易存儲變量。 – Tomanow

+0

太棒了!這使我能夠非常快速地完成所有工作:http://jsfiddle.net/sishu7/mq7jgjgL/7/。再次感謝。 – IlanaWB