JavaScript Library for Events and DOM manipulation. Replaces jQuery for Backbone.

Meet jBone

jBone is very small and fast abstraction for Events and DOM manipulation in modern browsers with identical jQuery interfaces in most cases.

It replaces jQuery for Backbone in web and mobile applications (about 2.5kb gzipped, much faster than jQuery and Zepto).

Extremely Small

About 2.5 kb gzipped. More than 10 times less than jQuery 2.x.

Super Fast

Uses native browser API. Two times faster than jQuery and Zepto on the average.

Use with Backbone

100% compatible with Backbone. The ideal solution for mobile applications.

Easy to learn and extend

jQuery compatible interfaces. Easy to learn and extend.

Why jBone?

The main idea of jBone is to use native JavaScript methods as much as possible in your project.

It is superior solution for applications based on Backbone and running on mobile devices as it is extremely small (2.5kb) and really fast library.

jBone project was created to allow people to use Backbone without jQuery.

Get it

Via bower

$ bower install jbone --save

Via component

$ component install kupriyanenko/jbone

Via nodejs or browserify

$ npm install jbone --save

Use it

Add a <script> element for jbone.js

<script src="path/to/jbone/dist/jbone.js"></script>

Or include it like npm module (with nodejs or browserify)

var $ = require('jbone');

And write awesome code:

var $input = $("<input>", {
    "class": "name"

$input.on("click.space", function(e) {
    console.log("clicked on", this);



Extend it

jBone.fn.addClass = function(className) {
    var i = 0,
        length = this.length;

    for (; i < length; i++) {

    return this;


AJAX, Deferred

This part is not covered in jBone. You can choose one of a huge amount of AJAX implementations as well as standard Promises/A+ implementations.

For example: when, Q, simply-deferred, AJAX.

Example of AJAX connection:

// add reqwest to your page https://rawgithub.com/ded/reqwest/master/reqwest.min.js

jBone.ajax = reqwest.compat;

    url: "http://example.com"

Example of connection with Deferred Object:

// add simply-deferred to your page https://rawgithub.com/sudhirj/simply-deferred/master/deferred.min.js


var deferred = $.Deferred();

$.when(deferred).then(function(response) {
    // awesome code


See documentsation for API

Fork me on GitHub