2016-07-22 56 views
0

我有一個非常簡單的想法...有一個按鈕(class =「upload」),每次後續點擊時,我希望它顯示一個新的div,設置最大次數。JQuery可以在隨後的每次點擊中顯示不同的元素嗎?

例如:

$('.upload').click(function() { 
      $('.upload_block2').show(0); 
     }, function() { 
      $('.upload_block3').show(0); 
     }, function() { 
      $('.upload_block4').show(0); 
     }, function() { 
      $('.upload_block5').show(0); 
      $('.upload').hide(0); 
     }); 

顯然上面的代碼不工作...

這甚至可能嗎?

+0

你可以使用一個計數器。只要頁面沒有刷新,就應該保留。不確定是否希望它通過頁面刷新持續。 – Thecor

+0

@Thecor它不需要通過頁面刷新持續下去......我可以問問櫃檯會是什麼樣子嗎?我嘗試了一次,但失敗了 – Scott

+0

Moishe貼在下面。這應該工作。但是,如果您希望它在5之後回到第一次上載,則需要檢查cutrentblock = 5,然後將set currentblock設置回1. – Thecor

回答

1

聲明兩個全局變量,一個用於顯示的塊總數,另一個用於顯示的當前塊。

當點擊.upload時,檢查currentBlock < maxBlock。如果是,則增加應該顯示的當前塊並連接.upload_blockcurrentBlock以獲得jquery選擇器。

var maxBlock = 5; 
var currentBlock = 1; 
$('.upload').click(function() { 
    if(currentBlock < maxBlock) { 
     currentBlock ++; 
     $('.upload_block' + currentBlock).show(0); 
    } 
}); 
+0

令人驚歎的!!!!!!謝謝! – Scott

0

試試這個:

var count = 1; 
$('.upload').click(function(){ 
    $(body).append('<div id="Div'+count+'"></div>'); 
    count++; 
}); 

這將每次添加一個新的div有唯一的ID也。

1

我希望它能爲你工作。

$('.upload').toggle(function() { 
     $('.upload').hide(0); 
     $('.upload_block2').show(0); 
    }, function() { 
     $('.upload').hide(0); 
     $('.upload_block3').show(0); 
    }, function() { 
     $('.upload').hide(0); 
     $('.upload_block4').show(0); 
    }, function() { 
     $('.upload').hide(0); 
     $('.upload_block5').show(0); 
}); 

參考,:http://www.w3schools.com/jquery/event_toggle.asp

+0

我認爲這個邏輯是最好的,如果你想要b'coz你可以在每個函數中處理不同的邏輯 – 2016-07-22 05:55:32