aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/helpers/javascripts/effects.js
diff options
context:
space:
mode:
authorThomas Fuchs <thomas@fesch.at>2006-04-01 19:47:31 +0000
committerThomas Fuchs <thomas@fesch.at>2006-04-01 19:47:31 +0000
commitbb2276098a5a21c35e5ee72b3097bd9d7caa919f (patch)
tree2836ff94d390e690cee155b35c42bb9f55a5571e /actionpack/lib/action_view/helpers/javascripts/effects.js
parent217f67bf847c3f80e9e13698fd42dcf3b3782fa9 (diff)
downloadrails-bb2276098a5a21c35e5ee72b3097bd9d7caa919f.tar.gz
rails-bb2276098a5a21c35e5ee72b3097bd9d7caa919f.tar.bz2
rails-bb2276098a5a21c35e5ee72b3097bd9d7caa919f.zip
Applied Prototype $() performance patches (#4465, #4477) and updated script.aculo.us [Sam Stephenson, Thomas Fuchs]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4122 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_view/helpers/javascripts/effects.js')
-rw-r--r--actionpack/lib/action_view/helpers/javascripts/effects.js25
1 files changed, 15 insertions, 10 deletions
diff --git a/actionpack/lib/action_view/helpers/javascripts/effects.js b/actionpack/lib/action_view/helpers/javascripts/effects.js
index bcf836b83c..927400502d 100644
--- a/actionpack/lib/action_view/helpers/javascripts/effects.js
+++ b/actionpack/lib/action_view/helpers/javascripts/effects.js
@@ -77,9 +77,12 @@ Element.getInlineOpacity = function(element){
}
Element.childrenWithClassName = function(element, className, findFirst) {
- return [$A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) {
- return c.className ? Element.hasClassName(c, className) : false;
- })].flatten();
+ var classNameRegExp = new RegExp("(^|\\s)" + className + "(\\s|$)");
+ var results = $A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) {
+ return (c.className && c.className.match(classNameRegExp));
+ });
+ if(!results) results = [];
+ return results;
}
Element.forceRerendering = function(element) {
@@ -91,11 +94,6 @@ Element.forceRerendering = function(element) {
} catch(e) { }
};
-['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom',
- 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each(
- function(f) { Element.Methods[f] = Element[f]; }
-);
-
/*--------------------------------------------------------------------------*/
Array.prototype.call = function() {
@@ -943,11 +941,18 @@ Effect.Fold = function(element) {
effect.element.setStyle(oldStyle);
} });
}}, arguments[1] || {}));
-}
+};
+
+['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom',
+ 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each(
+ function(f) { Element.Methods[f] = Element[f]; }
+);
Element.Methods.visualEffect = function(element, effect, options) {
s = effect.gsub(/_/, '-').camelize();
effect_class = s.charAt(0).toUpperCase() + s.substring(1);
new Effect[effect_class](element, options);
return $(element);
-}; \ No newline at end of file
+};
+
+Element.addMethods(); \ No newline at end of file