2010-08-10 95 views
0

我在頁面中使用jquery來隱藏我不想顯示的按鈕,除非需要。在這種情況下,它的一個表中有幾行我隱藏刪除按鈕,除非我選擇一個行被刪除...同樣,我隱藏的控制行操作,直到有更多的一行的按鈕。我使用下面的代碼。不需要時隱藏按鈕

jQuery(document).ready(function() { 
       if (jQuery(tableId).find("input[type='checkbox']").length == 1) { 
        jQuery(headerCheckbox).hide(); 
        jQuery(removeButtonId).hide(); 
        jQuery(upButtonId).hide(); 
        jQuery(downButtonId).hide(); 
       } else if (jQuery(tableId).find("input[type=checkbox]:checked").length == 0) { 
        jQuery(removeButtonId).hide(); 
        jQuery(upButtonId).hide(); 
        jQuery(downButtonId).hide(); 
        jQuery(headerCheckbox).click(function() { 
         jQuery(tableId).find("input[type='checkbox']").attr('checked', jQuery(headerCheckbox).is(':checked')); 
        }); 
       } 

       jQuery(tableId).find("input[type='checkbox']").each(function() { 
        if (jQuery(this).attr('id') != headerCheckbox) { 
         jQuery(this).click(function() { 
          if (jQuery(headerCheckbox).is(':checked')) { 
           if (jQuery(tableId).find("input[type=checkbox]:checked").length != 1) { 
            jQuery(removeButtonId).show(); 
            if (rowCount > 1) { 
             jQuery(upButtonId).show(); 
             jQuery(downButtonId).show(); 
           } 
          } else if (jQuery(tableId).find("input[type=checkbox]:checked").length > 0) { 
           jQuery(removeButtonId).show(); 
           if (rowCount > 1) { 
            jQuery(upButtonId).show(); 
            jQuery(downButtonId).show(); 
           } 
          } else { 
           jQuery(removeButtonId).hide(); 
           jQuery(upButtonId).hide(); 
           jQuery(downButtonId).hide(); 
          } 
         } 
        }); 
        } 
       }); 
      }); 

沒有

if (rowCount > 1) { 
           jQuery(upButtonId).show(); 
           jQuery(downButtonId).show(); 
          } 

此代碼工作正常的刪除按鈕,但此刻我加入這一行的行爲進入瘋狂和選擇所有的選擇,只有當工程...

解釋變量使用大多數只是ID從那裏相應的元素...除了rowcount這是由其他代碼生成的數字...我檢查鉻(螢火蟲)和數字生成正確。但仍然代碼只似乎工作,當我點擊選擇所有其他時間它不工作隱藏不再工作時,未選中,...我哪裏錯了?

回答

1

我想你錯過了第一右大括號如果(rowCount時> 1),它應該是這樣的:

jQuery(tableId).find("input[type='checkbox']").each(function() { 
        if (jQuery(this).attr('id') != headerCheckbox) { 
         jQuery(this).click(function() { 
          if (jQuery(headerCheckbox).is(':checked')) { 
           if (jQuery(tableId).find("input[type=checkbox]:checked").length != 1) { 
            jQuery(removeButtonId).show(); 
            if (rowCount > 1) { 
             jQuery(upButtonId).show(); 
             jQuery(downButtonId).show(); 
            } // <----This one was missing 
           } 
          } else if (jQuery(tableId).find("input[type=checkbox]:checked").length > 0) { 
           jQuery(removeButtonId).show(); 
           if (rowCount > 1) { 
            jQuery(upButtonId).show(); 
            jQuery(downButtonId).show(); 
           } 
          } else { 
           jQuery(removeButtonId).hide(); 
           jQuery(upButtonId).hide(); 
           jQuery(downButtonId).hide(); 
          } 
         } 
        }); 
        } 
       }); 

失蹤括號肯定會導致一些奇怪的問題。

+0

乾杯 就是這樣..這樣一個愚蠢的錯誤......哈哈 – Jeremiah 2010-08-10 05:38:53

+0

哈你會驚訝多少次經常第二雙眼睛會捕捉你已經錯過了幾小時後,它已經錯過的東西:P – cincodenada 2010-08-10 05:43:36