Extensions to prototype.js
GvaScript.protoExtensions - Extensions to prototype.js
Element.hasAnyClass(elem, ["class1", "class2", ...]); Element.getElementsByClassNames(elem, ["class1", "class2", ...]);
var stop_condition = function(elem) { return elem.tagName == "SPAN"}; Element.navigateDom(elem, "nextSibling", ["class1", "class2", ...], stop_condition);
this.options = Class.checkOptions(defaultOptions, receivedOptions);
Some extensions to the basic abstractions supplied by prototype.js.
if (Element.hasAnyClass(elem, ["class1", "class2", ...]) {...}
if (Element.hasAnyClass(elem, "class1") {...}
Returns true if the supplied element has any of the given classes. For convenience, also accepts a single string instead of an array when testing for a single class.
var subElements = Element.getElementsByClassNames(rootElement, ["class1", "class2", ...]);
Returns an array of children of rootElement
that have any
of the given class names.
Element.autoScroll(elem, percentage)
Makes sure that elem
is visible in the central area of
its offset parent; if not, the parent is scrolled.
percentage
is the ratio between the parent height and the
margin at which scrolling must occur, i.e. if
percentage = 20
(the default), then scrolling
occurs if the element is in the higher than the top 20% or
lower than the bottom 20% of the viewport.
Element.outerHTML(elem)
Returns a string representation of the DOM element,
including tags and attributes. Implemented through
the native outerHTML
property, if present; otherwise
constructs a string from tag name, attributes and
innerHTML property.
Event.detailedStop(event, toStop);
Browser-independent method to control fine details of
event stopping within event handlers.
The toStop
argument is an object
which may contain the following properties:
Just a convenience object, having both properties above set to true. So
Event.detailedStop(event, Event.stopAll);
is equivalent to calling prototype's Event.stop(event)
.
this.options = Class.checkOptions(defaultOptions, ctorOptions)
Utility for constructor methods. The first argument is an object containing a collection of default options (keys and values). The second argument is a similar object, containing options given to the constructor.
If one of the keys in ctorOptions
has no corresponding
key in defaultOptions
, an error is generated (because
the constructor does not expect such a key). Otherwise,
the concatenation of both objects is returned (i.e. values
in ctorOptions
take precedence over values in
defaultOptions
).
ASSERT (cond, msg);
Checks if cond
is true, and if not, generates an error
with message msg
.