2012-03-05 50 views
0

我已經做了一個腳本,幻燈片認爲一些客戶報價。看到下面的代碼更簡單的方法來做到以下

<script> 

jQuery(document).ready(function() { 
    jQuery(".da-feedback .da-quote").hide(); 
    jQuery(".da-feedback .da-quote:first-child").show(); 
    setTimeout('NextItem(1)',6000); 
}); 

function NextItem($n) { 

jQuery('.da-feedback .da-quote:nth-child('+$n+')').slideUp('slow'); 
$n = $n + 1; 
jQuery('.da-feedback .da-quote:nth-child('+$n+')').slideDown('slow'); 
setTimeout('NextItem('+$n+')',6000); 
} 

</script> 

<div class="da-feedback"> 
    <div class="da-quote" style="display: none; ">....</div> 
    <div class="da-quote" style="display: none; ">....</div> 
    <div class="da-quote" style="display: none; ">....</div> 
</div> 

我想知道如果jquerys給你一個功能,使這更容易。

回答

1

你看過.delay()

function NextItem(n) { 
    $('.da-feedback .da-quote:nth-child('+$n+')').slideUp('slow') 
     .delay(6000).slideDown('slow', NextItem(n++)); 
    // callback fires upon completion 
}; 
NextItem(1); 

順便說一下,它實際上並沒有什麼影響,但使用JavaScript,你不需要用$開始你的變量,並與jQuery它被認爲是一個慣例這樣做,當且僅當變量一個jQuery對象。

+0

看起來很多清潔劑。我知道我沒有提到這一點,但你會如何使它循環...... – 2012-03-05 14:42:59

+0

它已經應該 - 當'.slideDown'完成時,它會觸發一個回調函數,在這種情況下是對'NextItem'的遞歸調用。 – Blazemonger 2012-03-05 14:44:41

+0

非常感謝 – 2012-03-05 14:46:07

相關問題