蕪湖不蕪
2019-03-22 18:15:59
原代碼:$bars[i].style.top =160 - height + sinTable[(ang + (i * freq)) & 4095] * height + 'px';$bars[i].style.height = height2 + 'px';但是覺得.style好像很少見,所以打算換成用.css來實現(xiàn):var style={ top:160 - height + sinTable[(ang + (i * freq)) & 4095] * height + 'px', height:height2 + 'px'};$bars[i].css(style);為了方便直接傳遞一個變量(不用加引號),就直接定義了一個變量傳參。但沒有任何效果。單獨定義變量分別傳入也不行。想知道如果要用.css()來實現(xiàn)的話應(yīng)該怎么傳入?yún)?shù)
4 回答

蠱毒傳說
TA貢獻1895條經(jīng)驗 獲得超3個贊
樓上說的是對的。
實際上,jQuery 在這里應(yīng)用了設(shè)計模式中的“享元模式”,即用一套共享的數(shù)據(jù)降低大量重復(fù)性內(nèi)容的內(nèi)存和運算損耗。所以 $('.bar')
實際上取出來了所有 DOM 節(jié)點,然后返回的 $bars
并非 DOM Collection,而是一個 jQuery 實例,它是一個類數(shù)組對象,包含很多方法,比如 .css(attr, value)
。
所以你應(yīng)該用 $bars.css(style)。
另外,理論上 $bars[i]
會返回一個 DOM 節(jié)點,你直接調(diào)用 .css()
方法會報錯,建議你養(yǎng)成“不正常先看控制臺”的習(xí)慣,對將來會有很大幫助。
添加回答
舉報
0/150
提交
取消