2012-10-03 54 views
2

如何在jQuery中編寫以下代碼,並將其應用於所有元素(類名爲something)。我試圖讓https://gist.github.com/1129073應用於由class指定的多個元素,而不是僅由id定位的單個元素。將JavaScript代碼重新寫入jQuery

更具體地說,我在看着http://jsfiddle.net/fgnass/9BkjZ/,並試圖使它在類而不是僅僅一個id上工作,因此它可以應用於很多元素。

(function(a,b,c){ 
    setInterval(function(){ 
    for(
     b=0; 
     b<8;c||(a.innerHTML+='<i><b>'), 
     a.childNodes[b].style.opacity=(++b-~c)%8*.1+.2); 
    c=-~c 
    },99) 
})(document.getElementsByClassName('something')); 

以上僅該代碼使用})(document.getElementsByClassName('something')[0]);作爲最後一行時工作的第一個元素w爲someting /類名上。

+0

哇。這種扭曲的混亂甚至從何而來? –

+2

@MattBall也許類似於http://www.140byt.es/ ;-) – Prinzhorn

+0

^Yup大聲笑。 ;)@MattBall,請參閱:https://gist.github.com/1129073。我已經將'getElementById'改爲'getElementsByClassName',因爲我希望它適用於許多'類'而不是僅僅一個'id'。 – Steve

回答

2

的jQuery此位應該做同樣的事情,你的JavaScript。

$('.something').each(function() { 
    for (i = 0; i < 8; i++) 
    { 
     $(this).append('<b class="b' + i + ' o' + i + '" data-opacity="' + i + '"><i>•</i></b>'); 
    } 
}); 

setInterval(function() { 
    $('.something b').each(function() { 
     $(this).removeClass('o' + $(this).attr('data-opacity')); 
     $(this).attr('data-opacity', (parseInt($(this).attr('data-opacity')) + 1) % 8); 
     $(this).addClass('o' + $(this).attr('data-opacity')); 
    }); 
}, 99); 

你也可能想看看它不使用圖像還可以創建一個裝載微調如下:
http://fgnass.github.com/spin.js/
http://cssload.net/
http://www.jquery4u.com/animation/10-css3-jquery-loading-animations-solutions/

0

它還將努力

$('.something').show(); 
+0

應該更具體地瞭解代碼的設計目的,請參閱上面我更新的問題。 – Steve

+0

這不會看起來像這樣:http://jsfiddle.net/84yzL/ –

+0

^我只是笑我的屁股在那個jsfiddle –

0

要解釋一下

$('.something').fadeIn(); 

從SLaks採取回答

$('.something') 

將抓住所有.something類的元素,淡入()是一個內置的jquery方法,它將把元素的不透明度從0改爲1.請注意,如果你的元素有一個不透明度爲1,你調用fadeIn,我認爲它會閃爍和淡入。除了可以在jquery網站上找到的fadeIn以外,還有很多其他jQuery實用程序。

$('SELECTOR') 

選擇器可以是任意CSS選擇器,例如

$('#myID .something') 
$('#myID > .something') 
$('#myID .something:first-child') 
$('div.className #myid') 
+0

謝謝你的迴應。我明白在jQuery中使用CSS選擇器,但是如何將該函數包裝到類選擇器目標中?請重新閱讀我的問題,以瞭解我正在努力完成的任務。 – Steve