Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #7848: updated.patch

File updated.patch, 2.2 kB (added by haraldmartin, 1 year ago)
  • src/dom.js

    old new  
    151151  descendants: function(element) { 
    152152    return $A($(element).getElementsByTagName('*')).each(Element.extend); 
    153153  }, 
     154 
     155  immediateDescendants: function(element) { 
     156    return $(element).findChildNodes(); 
     157  }, 
    154158   
    155   immediateDescendants: function(element) { 
    156     if (!(element = $(element).firstChild)) return []; 
     159  findChildNodes: function(element, single) { 
     160    var returning = single ? null : []; 
     161    if (!(element = $(element).firstChild)) return returning; 
    157162    while (element && element.nodeType != 1) element = element.nextSibling; 
    158     if (element) return [element].concat($(element).nextSiblings()); 
    159     return []; 
     163    if (element) return single ? element : [element].concat($(element).nextSiblings()); 
     164    return returning;     
    160165  }, 
    161  
     166   
    162167  previousSiblings: function(element) { 
    163168    return $(element).recursivelyCollect('previousSibling'); 
    164169  }, 
     
    179184  }, 
    180185   
    181186  up: function(element, expression, index) { 
     187    if (arguments.length == 1) return $(element.parentNode); 
    182188    var ancestors = $(element).ancestors(); 
    183189    return expression ? Selector.findElement(ancestors, expression, index) : 
    184190      ancestors[index || 0]; 
    185191  }, 
    186    
     192 
    187193  down: function(element, expression, index) { 
     194    if (arguments.length == 1) return $(element).findChildNodes(true); 
    188195    var descendants = $(element).descendants(); 
    189196    return expression ? Selector.findElement(descendants, expression, index) : 
    190197      descendants[index || 0]; 
    191198  }, 
    192199 
    193200  previous: function(element, expression, index) { 
     201    if (arguments.length == 1) 
     202      return $(Selector.handlers.previousElementSibling(element)); 
    194203    var previousSiblings = $(element).previousSiblings(); 
    195204    return expression ? Selector.findElement(previousSiblings, expression, index) : 
    196205      previousSiblings[index || 0]; 
    197206  }, 
    198    
     207 
    199208  next: function(element, expression, index) { 
     209    if (arguments.length == 1)  
     210      return $(Selector.handlers.nextElementSibling(element)); 
    200211    var nextSiblings = $(element).nextSiblings(); 
    201212    return expression ? Selector.findElement(nextSiblings, expression, index) : 
    202213      nextSiblings[index || 0];