diff options
Diffstat (limited to 'actionpack/lib/action_view/helpers/javascripts/effects.js')
-rw-r--r-- | actionpack/lib/action_view/helpers/javascripts/effects.js | 25 |
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 |