2009-09-14 46 views
0

選擇元素在question at this link的延續,我想在test.html中
事件觸發任何< p系列「點擊」 =「」 >標籤添加一些功能。 點擊後,我想那個特定<p>消失(這是相當簡單)我也希望這樣jQuery中

  1. 如果出了三一或兩個<p>的是隱藏的,則「隱藏「 EM」按鈕應該‘顯示’伴隨着「展示給我看」
  2. 如果所有<p>是隱藏的則「隱藏「EM」也應該得到隱藏
  3. 當所有<p>都可見時,「顯示em」應該隱藏。

我試着用jQuery選擇器和選擇器文檔的知識去了解事情,但沒有達到我想要的任何地方。這是我迄今爲止所做的。

$('p.*').live('click', function() { 
     $(this).hide('slow'); 
     if($('p').is(':hidden')) { 
      $('.shower').show(); 
     } 
     if($('p.*').is(':hidden')) { 
      $('.hider').show(); 
     } 

    }); 

但是這個代碼不選擇在所有<p>隱藏

+0

你有什麼迄今所做的極端條件下進行切換? – rahul 2009-09-14 10:38:30

+0

我在問題 – OrangeRind 2009-09-14 10:43:48

回答

1

這裏有一個辦法做到這一點

var all_ps = $('p.*').length; 
var hidden_ps = 0; 

$('p.*').live('click', function() { 
    $(this).hide('slow'); 
    hidden_ps++; 
    updateButtons(); 
}); 
function updateButtons() 
{ 
    $('.hider').show(); 
    $('.shower').show(); 
    if(hidden_ps == all_ps-1) { 
     $('.hider').hide(); 
    } else if(hidden_ps == 0) { 
     $('.shower').hide(); 
    } 
} 
function resetButtons() 
{ 
    $('p.*').show(); 
    hidden_ps = 0; 
    updateButtons() 
} 
+0

中添加了我迄今爲止所做的工作,其中resetButtons()正在使用? – OrangeRind 2009-09-14 11:02:48

+0

你會從「Show em」按鈕中調用它。 $('。shower')。click(resetButtons) – 2009-09-14 11:06:21

+0

莫名其妙地不工作。我稍後再檢查一遍,稍後再回復一遍......謝謝! – OrangeRind 2009-09-14 11:21:59