Package Exports
- ender-js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ender-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ENDER-JS
This is the home of ender's client code. It's what provides the glue for pulling together otherwise independent modules into a single cohesive library.
THE API
The bridge is what Ender uses to connect modules to the main ender object.
noConflict
It's key to note that Ender users have the optional ability to call noConflict()
on Ender in case the top-level $
symbol is already taken. With that in mind, Developers should always wrap their Ender extensions as such:
!function ($) {
// extend ender
}(ender);
Top level methods
To create top level methods, like for example $.myUtility(...)
, you can hook into Ender by calling the ender method:
!function ($) {
$.ender({
myUtility: myLibFn
});
}(ender);
(note - this is the default integration if no bridge is supplied)
The Internal chain
Another common case for Plugin developers is to be able hook into the internal collection chain. To do this, simply call the same ender
method but pass true
as the second argument:
!function ($) {
$.ender(myExtensions, true);
}(ender);
Within this scope the internal prototype is exposed to the developer with an existing elements
instance property representing the node collection. Have a look at how the Bonzo DOM utility does this. Also note that the internal chain can be augmented at any time (outside of this build) during your application. For example:
<script src="ender.js"></script>
<script>
// an example of creating a utility that returns a random element from the matched set
!function ($) {
$.ender({
rand: function () {
return this[Math.floor(Math.random() * (this.length))];
}
}, true);
}(ender);
$('p').rand();
</script>
Selector Engine API
Ender also exposes a unique privileged variable called $._select
, which allows you to set the Ender selector engine. Setting the selector engine provides ender with the $ method, like this:
$('#foo .bar')
Setting the selector engine is done like so:
$._select = mySelectorEngine;
You can see it in practice inside Qwery's ender bridge
If you're building a Mobile Webkit or Android application, it may be a good idea to simply set it equal to QSA:
$._select = function (selector, root) {
return (root || document).querySelectorAll(selector);
};
License
Ender (the wrapper) is licensed under MIT - copyright 2011 Dustin Diaz & Jacob Thornton
For the individual modules, see their respective licenses.