Treeview et javascript

Treeview et javascript - HTML/CSS - Programmation

Marsh Posté le 25-08-2008 à 11:06:32    

var nom=navigator.appName;
bonjour j'ai un soucis avec mozilla qui ne reconnait pas le event...
 

Code :
  1. function SelectAllChildNodes(event)
  2.     {
  3.         event = event || window.event;
  4.         //debugger;
  5.         if (nom=='Microsoft Internet Explorer') {
  6.         var obj = event.srcElement;
  7.         }
  8.         else {
  9.         var obj = window.event.target;
  10.         }
  11.        
  12.         var treeNodeFound = false;


Message édité par korben31 le 25-08-2008 à 11:51:58
Reply

Marsh Posté le 25-08-2008 à 11:06:32   

Reply

Marsh Posté le 25-08-2008 à 11:26:39    

et ca donne quoi ca ? :

Code :
  1. function SelectAllChildNodes (e)
  2.     {
  3.         var event = e || window.event;
  4.         //debugger;
  5.         var obj = event.target || event.srcElement;
  6.         var treeNodeFound = false;
  7. ...


 
faut se méfier, ttes les variables font parties de l'objet window ;)


Message édité par SICKofitALL le 25-08-2008 à 11:27:22

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 25-08-2008 à 11:29:56    

:D

Reply

Marsh Posté le 25-08-2008 à 11:30:50    

Il faut prendre ca comment ? :o


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 25-08-2008 à 11:51:27    

Me reste juste un truc maintenant, j'ai un treeview en asp et j'ai recuperer une fonction qui permet de check tout les sous noeud
Le truk c'est que j'aimerai l'adapter pour faire un lien onclick qui me permette de faire une fonction qui me selectionne toute les checkboxes de mon treeview:
 

Code :
  1. function OnTreeClick(evt)
  2. {
  3. var src = window.event != window.undefined ? window.event.srcElement : evt.target;
  4. var isChkBoxClick = (src.tagName.toLowerCase() == "input" && src.type == "checkbox" );
  5. if(isChkBoxClick)
  6. {
  7.      var parentTable = GetParentByTagName("table", src);
  8.      var nxtSibling = parentTable.nextSibling;
  9.      //check if nxt sibling is not null & is an element node
  10.       if(nxtSibling && nxtSibling.nodeType == 1)
  11.      {
  12.          if(nxtSibling.tagName.toLowerCase() == "div" ) //if node has children
  13.          {
  14.              //check or uncheck children at all levels
  15.              CheckUncheckChildren(parentTable.nextSibling, src.checked);
  16.          }
  17.      }
  18. //check or uncheck parents at all levels
  19. CheckUncheckParents(src, src.checked);
  20. }
  21. }
  22. function CheckUncheckChildren(childContainer, check)
  23. {
  24. var childChkBoxes = childContainer.getElementsByTagName("input" );
  25.       var childChkBoxCount = childChkBoxes.length;
  26. for(var i=0;i<childChkBoxCount;i++)
  27. {
  28.      childChkBoxes[i].checked = check;
  29. }
  30. }
  31. function CheckUncheckParents(srcChild, check)
  32. {
  33. var parentDiv = GetParentByTagName("div", srcChild);
  34. var parentNodeTable = parentDiv.previousSibling;
  35. if(parentNodeTable)
  36. {
  37.      var checkUncheckSwitch;
  38.      if(check) //checkbox checked
  39.      {
  40.          var isAllSiblingsChecked = AreAllSiblingsChecked(srcChild);
  41.          if(isAllSiblingsChecked)
  42.                  checkUncheckSwitch = true;
  43.          else
  44.                  return; //do not need to check parent if any(one or more) child not checked
  45.      }
  46.      else //checkbox unchecked
  47.      {
  48.          checkUncheckSwitch = false;
  49.      }
  50.  
  51.      var inpElemsInParentTable = parentNodeTable.getElementsByTagName("input" );
  52.      if(inpElemsInParentTable.length > 0)
  53.      {
  54.          var parentNodeChkBox = inpElemsInParentTable[0];
  55.          parentNodeChkBox.checked = checkUncheckSwitch;
  56.          //do the same recursively
  57.         CheckUncheckParents(parentNodeChkBox, checkUncheckSwitch);
  58.      }
  59. }
  60. }
  61. function AreAllSiblingsChecked(chkBox)
  62. {
  63. var parentDiv = GetParentByTagName("div", chkBox);
  64. var childCount = parentDiv.childNodes.length;
  65. for(var i=0;i<childCount;i++)
  66. {
  67.      if(parentDiv.childNodes[i].nodeType == 1)
  68.      {
  69.          //check if the child node is an element node
  70.          if(parentDiv.childNodes[i].tagName.toLowerCase() == "table" )
  71.          {
  72.              var prevChkBox = parentDiv.childNodes[i].getElementsByTagName("input" )[0];
  73.              //if any of sibling nodes are not checked, return false
  74.              if(!prevChkBox.checked)
  75.              {
  76.                  return false;
  77.              }
  78.          }
  79.      }
  80. }
  81. return true;
  82. }
  83. //utility function to get the container of an element by tagname
  84. function GetParentByTagName(parentTagName, childElementObj)
  85. {
  86. var parent = childElementObj.parentNode;
  87. while(parent.tagName.toLowerCase() != parentTagName.toLowerCase())
  88.      {
  89.          parent = parent.parentNode;
  90.      }
  91. return parent;
  92. }

Reply

Marsh Posté le 25-08-2008 à 11:57:04    

Tiens le sujet a changé de nom ... :o


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 25-08-2008 à 11:58:20    

oui j'ai fais un sujet generique :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed