隨筆-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 閱讀(2764) 評論(0)  編輯  收藏 所屬分類: JavaJSF
          主站蜘蛛池模板: 高雄市| 确山县| 邵阳市| 汝南县| 隆回县| 盘锦市| 石家庄市| 育儿| 鹰潭市| 建阳市| 福贡县| 日喀则市| 通河县| 黄冈市| 潢川县| 体育| 东城区| 定兴县| 历史| 施秉县| 万宁市| 淄博市| 嘉兴市| 易门县| 佛山市| 临泉县| 永济市| 佛冈县| 长宁区| 和政县| 阜南县| 益阳市| 阿巴嘎旗| 铜川市| 卓尼县| 曲周县| 罗田县| 田阳县| 从化市| 筠连县| 庆城县|