Changeset 577
- Timestamp:
- 01/26/06 14:10:41 (3 years ago)
- Files:
-
- mochikit/branches/scriptaculous/MochiKit/Controls.js (modified) (4 diffs)
- mochikit/branches/scriptaculous/MochiKit/New.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/branches/scriptaculous/MochiKit/Controls.js
r570 r577 585 585 }, 586 586 587 findElement: function (event, tagName) { 588 var element = event.target; 589 while (element.parentNode && (!element.tagName || 590 (element.tagName.toUpperCase() != tagName.toUpperCase()))) { 591 element = element.parentNode; 592 } 593 return element; 594 } 595 587 596 onHover: function (event) { 588 var element = MochiKit.Event.findElement(event, 'LI');597 var element = this.findElement(event, 'LI'); 589 598 if (this.index != element.autocompleteIndex) { 590 599 this.index = element.autocompleteIndex; … … 595 604 596 605 onClick: function (event) { 597 var element = MochiKit.Event.findElement(event, 'LI');606 var element = this.findElement(event, 'LI'); 598 607 this.index = element.autocompleteIndex; 599 608 this.selectEntry(); … … 654 663 }, 655 664 665 collectTextNodesIgnoreClass: function (element, className) { 666 return MochiKit.Base.flatten(MochiKit.Base.map(function (node) { 667 if (node.nodeType == 3) { 668 return node.nodeValue; 669 } else if (node.hasChildNodes() && !MochiKit.DOM.hasElementClass(node, className)) { 670 return this.collectTextNodesIgnoreClass(node, className); 671 } 672 return ''; 673 }, MochiKit.DOM.getElement(element).childNodes)).join(''); 674 }, 675 656 676 updateElement: function (selectedElement) { 657 677 if (this.options.updateElement) { … … 663 683 var nodes = document.getElementsByClassName(this.options.select, selectedElement) || []; 664 684 if (nodes.length > 0) { 665 value = MochiKit.DOM. collectTextNodes(nodes[0], this.options.select);685 value = MochiKit.DOM.scrapeText(nodes[0]); 666 686 } 667 687 } else { 668 value = MochiKit.DOM.collectTextNodesIgnoreClass(selectedElement, 'informal');688 value = this.collectTextNodesIgnoreClass(selectedElement, 'informal'); 669 689 } 670 690 var lastTokenPos = this.findLastToken(); mochikit/branches/scriptaculous/MochiKit/New.js
r570 r577 80 80 } 81 81 } 82 },83 84 bindAsEventListener: function (func, self) {85 return MochiKit.DOM.asEventListener(MochiKit.Base.bind(func, self));86 },87 88 asEventListener: function (func) {89 return function (e) {90 func.call(this, e || event);91 };92 },93 94 addEventListener: function (element, action, func) {95 var listener = MochiKit.DOM.asEventListener(func);96 element = MochiKit.DOM.getElement(element);97 if (element.addEventListener) {98 element.addEventListener(action, listener, false);99 } else if (element.attachEvent) {100 element.attachEvent('on' + action, listener);101 }102 return listener;103 82 }, 104 83 … … 218 197 }, 219 198 220 collectTextNodes: function (element) {221 return MochiKit.Base.flatten(MochiKit.Base.map(function (node) {222 if (node.nodeType == 3) {223 return node.nodeValue;224 } else if (node.hasChildNodes()) {225 return MochiKit.DOM.collectTextNodes(node);226 }227 return '';228 }, MochiKit.DOM.getElement(element).childNodes)).join('');229 },230 231 collectTextNodesIgnoreClass: function (element, className) {232 return MochiKit.Base.flatten(MochiKit.Base.map(function (node) {233 if (node.nodeType == 3) {234 return node.nodeValue;235 } else if (node.hasChildNodes() && !MochiKit.DOM.hasElementClass(node, className)) {236 return MochiKit.DOM.collectTextNodesIgnoreClass(node, className);237 }238 return '';239 }, MochiKit.DOM.getElement(element).childNodes)).join('');240 },241 242 199 setContentZoom: function (element, percent) { 243 200 MochiKit.DOM.setStyle(element, {fontSize: (percent/100) + 'em'}); … … 399 356 }; 400 357 401 MochiKit.Event = {402 // find the first node with the given tagName, starting from the403 // node the event was triggered on; traverses the DOM upwards404 findElement: function (event, tagName) {405 var element = event.target;406 while (element.parentNode && (!element.tagName ||407 (element.tagName.toUpperCase() != tagName.toUpperCase()))) {408 element = element.parentNode;409 }410 return element;411 }412 };413
