隨筆-348  評論-598  文章-0  trackbacks-0

          下面的代碼是,當選中父節點,則子節點全選;選中任意一個子節點,則選中父節點

          jQuery.noConflict();//與JSF搭配需要這句話,不然會有沖突
                  jQuery(document).ready(function() {
                  
          // Add click event listener to each checkbox in the tree page
                  // Note! Using this simple selector assumes that there are no other 
                  // checkboxes on the page, if there are other checkboxes then
                  // selector should be changed    
                      jQuery(":checkbox").click(function(){
                          updateChildren(
          this);
                          updateParent(
          this);
                       }
          );
                  }
          );
                  
          </script>
                  
          <script type="text/javascript">
                  
          function updateChildren(currentCheckBox)
                  
          {
                      
          // Get state of current checkbox (true or false)
                      var state = currentCheckBox.checked;
                      
                      
          // Get parent TABLE, where current checkbox is places
                      var parentTables = jQuery(currentCheckBox).parents("table"); 
                      
          var parentTable = parentTables[0];    
                  
                      
          // Get DIV where child nodes with checkboxes are situated
                      // See http://docs.jquery.com/Traversing/ to get better uderstanding of
                      // parents() and next()        
                      var childDivs = jQuery(parentTable).next("div");    
                      
          if(    childDivs.length > 0 )
                      
          {
                          
          var childDiv = childDivs[0];        
                      
                          
          // Iterate over all child nodes checkboxes and set same state as the 
                          // current checkbox state
                          jQuery(childDiv).contents().find(":checkbox").each(function() {
                              
          this.checked = state;
                          }
          );
                      }


                  }

                  
                  
          //更新父節點的方法,如果子節點全部選中則父節點選中,如果子節點中有一個選中,則父節點也選中
                  function updateParent(currentCheckbox) {
                      
          var parentDivs = jQuery(currentCheckbox).parents("div");
                      
          var parentDiv = parentDivs[0];    

                      
          var hasSelected = false;
                      
                      jQuery(parentDiv).contents().find(
          ":checkbox").each(function() {
                          
          if(this.checked) {
                              hasSelected 
          = true;
                          }

                      }
          );
                      
                      
          var parentTables = jQuery(parentDiv).prev("table");
                      
          if(parentTables.length > 0)
                      
          {
                          
          var parentTable = parentTables[0];
                      
                          
          var parentCheckboxes = jQuery(parentTable).find(":checkbox");
                          
          var parentCheckbox = parentCheckboxes[0];
                          
                          parentCheckbox.checked 
          = hasSelected ;
                      }


                  }

          下面的代碼是,當選中父節點,則子節點全選;選中所有子節點,則選中父節點
          jQuery.noConflict();//與JSF搭配需要這句話,不然會有沖突
                  jQuery(document).ready(function() {
                  
          // Add click event listener to each checkbox in the tree page
                  // Note! Using this simple selector assumes that there are no other 
                  // checkboxes on the page, if there are other checkboxes then
                  // selector should be changed    
                      jQuery(":checkbox").click(function(){
                          updateChildren(
          this);
                          updateParent(
          this);
                       }
          );
                  }
          );
                  
          </script>
                  
          <script type="text/javascript">
                  
          function updateChildren(currentCheckBox)
                  
          {
                      
          // Get state of current checkbox (true or false)
                      var state = currentCheckBox.checked;
                      
                      
          // Get parent TABLE, where current checkbox is places
                      var parentTables = jQuery(currentCheckBox).parents("table"); 
                      
          var parentTable = parentTables[0];    
                  
                      
          // Get DIV where child nodes with checkboxes are situated
                      // See http://docs.jquery.com/Traversing/ to get better uderstanding of
                      // parents() and next()        
                      var childDivs = jQuery(parentTable).next("div");    
                      
          if(    childDivs.length > 0 )
                      
          {
                          
          var childDiv = childDivs[0];        
                      
                          
          // Iterate over all child nodes checkboxes and set same state as the 
                          // current checkbox state
                          jQuery(childDiv).contents().find(":checkbox").each(function() {
                              
          this.checked = state;
                          }
          );
                      }


                  }

                  
                  
          //更新父節點的方法,如果子節點全部選中則父節點選中,如果子節點中有一個未選中,則父節點也未選中
                  function updateParent(currentCheckbox) {
                      
          var parentDivs = jQuery(currentCheckbox).parents("div");
                      
          var parentDiv = parentDivs[0];    

                      
          var hasSelected = true;
                      
                      jQuery(parentDiv).contents().find(
          ":checkbox").each(function() {
                          
          if(!this.checked) {
                              hasSelected 
          = false;
                          }

                      }
          );
                      
                      
          var parentTables = jQuery(parentDiv).prev("table");
                      
          if(parentTables.length > 0)
                      
          {
                          
          var parentTable = parentTables[0];
                      
                          
          var parentCheckboxes = jQuery(parentTable).find(":checkbox");
                          
          var parentCheckbox = parentCheckboxes[0];
                          
                          parentCheckbox.checked 
          = hasSelected ;
                      }


                  }


          ---------------------------------------------------------
          專注移動開發

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2009-12-27 22:52 TiGERTiAN 閱讀(2765) 評論(0)  編輯  收藏 所屬分類: Java 、JSF
          主站蜘蛛池模板: 墨江| 蚌埠市| 射洪县| 珲春市| 汤原县| 乌兰浩特市| 海丰县| 梁河县| 曲麻莱县| 大港区| 运城市| 额济纳旗| 罗源县| 来宾市| 安顺市| 桂林市| 周至县| 吉安市| 襄汾县| 田东县| 青岛市| 班玛县| 云林县| 英山县| 翼城县| 宁乡县| 油尖旺区| 怀化市| 克山县| 安乡县| 西昌市| 霍林郭勒市| 昌都县| 仁布县| 长岭县| 营口市| 长宁区| 曲周县| 疏附县| 沙雅县| 石棉县|