{"id":21859328,"url":"https://github.com/kupriyanenko/jbone","last_synced_at":"2025-04-04T20:07:08.949Z","repository":{"id":57279802,"uuid":"14127619","full_name":"kupriyanenko/jbone","owner":"kupriyanenko","description":"JavaScript Library for Events and DOM manipulation. Replaces jQuery for Backbone (2.5kb gzipped)","archived":false,"fork":false,"pushed_at":"2020-06-21T14:28:26.000Z","size":1352,"stargazers_count":279,"open_issues_count":3,"forks_count":35,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-28T19:07:17.616Z","etag":null,"topics":["javascript"],"latest_commit_sha":null,"homepage":"http://jbone.js.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kupriyanenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-05T00:19:40.000Z","updated_at":"2024-06-24T15:43:48.000Z","dependencies_parsed_at":"2022-09-09T14:51:27.188Z","dependency_job_id":null,"html_url":"https://github.com/kupriyanenko/jbone","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kupriyanenko%2Fjbone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kupriyanenko%2Fjbone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kupriyanenko%2Fjbone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kupriyanenko%2Fjbone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kupriyanenko","download_url":"https://codeload.github.com/kupriyanenko/jbone/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242671,"owners_count":20907133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript"],"created_at":"2024-11-28T02:56:59.487Z","updated_at":"2025-04-04T20:07:08.906Z","avatar_url":"https://github.com/kupriyanenko.png","language":"JavaScript","readme":"# Meet jBone\n\n[![Join the chat at https://gitter.im/kupriyanenko/jbone](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/kupriyanenko/jbone?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n[![Build Status](https://travis-ci.org/kupriyanenko/jbone.svg?branch=master)](https://travis-ci.org/kupriyanenko/jbone)\n[![Bower version](https://badge.fury.io/bo/jbone.svg)](http://jbone.js.org)\n[![npm version](https://badge.fury.io/js/jbone.svg)](https://www.npmjs.com/package/jbone)\n[![JS.ORG](https://img.shields.io/badge/js.org-jbone-ffb400.svg)](http://jbone.js.org)\n[![CDNJS.COM](https://img.shields.io/badge/cdnjs.com-jbone-ffb400.svg)](https://cdnjs.com/libraries/jbone)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/kupriyanenko/jbone)\n[![GitHub Stats](https://img.shields.io/badge/github-stats-ff5500.svg)](http://githubstats.com/kupriyanenko/jbone)\n\njBone is very small and fast abstraction for Events and DOM manipulation in modern browsers with identical jQuery interfaces in most cases.\n\nIt replaces jQuery for Backbone in web and mobile applications (about 2.5kb gzipped, much faster than jQuery and Zepto).\n\n## Why jBone?\n\nThe main idea of jBone is to use native JavaScript methods as much as possible in your project.\n\nIt is superior solution for applications based on Backbone and running on mobile devices as it is extremely small (2.5kb) and really fast library.\n\njBone project was created to allow people to use Backbone without jQuery.\n\nSee benchmark results [here](http://kupriyanenko.github.io/jbone/perf.html).\n\n## Get it\n\n##### Via bower\n\n```\n$ bower install jbone --save\n```\n\n##### Via component\n\n```\ncomponent install kupriyanenko/jbone\n```\n\n##### Via nodejs or browserify\n\n```\n$ npm install jbone --save\n```\n\n## Use it\n\nAdd a `\u003cscript\u003e` element for jbone.js\n\n```html\n\u003cscript src=\"path/to/jbone/dist/jbone.js\"\u003e\u003c/script\u003e\n```\n\nOr include it like npm module (with nodejs or browserify)\n\n```javascript\nvar $ = require('jbone');\n```\n\nAnd write awesome code:\n\n```javascript\nvar $input = $(\"\u003cinput\u003e\", {\n    \"class\": \"name\"\n}).val(\"John\");\n\n$input.on(\"click.space\", function(e) {\n    console.log(\"clicked on\", this);\n});\n\n$input.trigger(\"click\");\n\n$input.off(\".space\");\n```\n\n## Extend it\n\n```javascript\njBone.fn.addClass = function(className) {\n    var i = 0,\n        length = this.length;\n\n    for (; i \u003c length; i++) {\n        this[i].classList.add(className);\n    }\n\n    return this;\n};\n\n$(\".header\").addClass(\"loaded\");\n```\n\n## AJAX, Deferred\n\nThis part is not covered in jBone. You can choose one of a huge amount of AJAX implementations as well as standard Promises/A+ implementations.\n\nFor example: [when](https://github.com/cujojs/when), [Q](https://github.com/kriskowal/q), [simply-deferred](https://github.com/sudhirj/simply-deferred), [AJAX](microjs.com/#ajax).\n\nExample of AJAX connection:\n\n```javascript\n// connect reqwest on your page https://rawgithub.com/ded/reqwest/master/reqwest.min.js\n\njBone.ajax = reqwest.compat;\n\n$.ajax({\n    url: \"http://example.com\"\n});\n```\n\nExample of connection with Deferred Object:\n\n```javascript\n// connect simply-deferred on your page https://rawgithub.com/sudhirj/simply-deferred/master/deferred.min.js\n\nDeferred.installInto(jBone);\n\nvar deferred = $.Deferred();\n\n$.when(deferred).then(function(response) {\n    // some code\n});\n```\n\n## Browser support\n\n* Internet Explorer 11+\n* Safari 6+\n* iOS 5+ Safari\n* Android 2.3+ Browser\n* Chrome\n* Firefox\n\n\n## API\n\n[jBone](https://github.com/kupriyanenko/jbone/wiki/jBone)\n\n* [jBone(selector[, context])](https://github.com/kupriyanenko/jbone/wiki/jBone#jboneselector)\n* [jBone(element)](https://github.com/kupriyanenko/jbone/wiki/jBone#jboneelement)\n* [jBone(elementArray)](https://github.com/kupriyanenko/jbone/wiki/jBone#jboneelementarray)\n* [jBone(jBoneObject)](https://github.com/kupriyanenko/jbone/wiki/jBone#jbonejboneobject)\n* [jBone(html[, attributes])](https://github.com/kupriyanenko/jbone/wiki/jBone#jbonehtml-attributes)\n\n[Attributes](https://github.com/kupriyanenko/jbone/wiki/Attributes)\n\n* [.attr(attributeName)](https://github.com/kupriyanenko/jbone/wiki/Attributes#attrattributename)\n* [.attr(attributeName, value)](https://github.com/kupriyanenko/jbone/wiki/Attributes#attrattributename-value)\n* [.attr(attributes)](https://github.com/kupriyanenko/jbone/wiki/Attributes#attrattributes)\n* [.removeAttr(attributeName)](https://github.com/kupriyanenko/jbone/wiki/Attributes#removeattrattributename)\n* [.val()](https://github.com/kupriyanenko/jbone/wiki/Attributes#val)\n* [.val(value)](https://github.com/kupriyanenko/jbone/wiki/Attributes#valvalue)\n* [.css(propertyName, value)](https://github.com/kupriyanenko/jbone/wiki/Attributes#csspropertyname-value)\n* [.css(properties)](https://github.com/kupriyanenko/jbone/wiki/Attributes#cssproperties)\n* [.addClass(className)](https://github.com/kupriyanenko/jbone/wiki/Attributes#addclassclassname)\n* [.removeClass(className)](https://github.com/kupriyanenko/jbone/wiki/Attributes#removeclassclassname)\n* [.toggleClass(className)](https://github.com/kupriyanenko/jbone/wiki/Attributes#toggleclassclassname)\n* [.toggleClass(className, state)](https://github.com/kupriyanenko/jbone/wiki/Attributes#toggleclassclassname-state)\n* [.hasClass(className)](https://github.com/kupriyanenko/jbone/wiki/Attributes#hasclassclassname)\n\n[Data](https://github.com/kupriyanenko/jbone/wiki/Data)\n\n* [.data(key, value)](https://github.com/kupriyanenko/jbone/wiki/Data#datakey-value)\n* [.data(obj)](https://github.com/kupriyanenko/jbone/wiki/Data#dataobj)\n* [.data(key)](https://github.com/kupriyanenko/jbone/wiki/Data#datakey)\n* [.data()](https://github.com/kupriyanenko/jbone/wiki/Data#data)\n* [.removeData(key)](https://github.com/kupriyanenko/jbone/wiki/Data#removedatakey)\n* [.removeData()](https://github.com/kupriyanenko/jbone/wiki/Data#removedata)\n\n[Event](https://github.com/kupriyanenko/jbone/wiki/Event)\n\n* [.on(event[, selector, data], handler)](https://github.com/kupriyanenko/jbone/wiki/Event#onevent-selector-data-handler)\n* [.one(event[, selector, data], handler)](https://github.com/kupriyanenko/jbone/wiki/Event#oneevent-selector-data-handler)\n* [.off(event[, selector, handler])](https://github.com/kupriyanenko/jbone/wiki/Event#offevent-selector-handler)\n* [.trigger(event)](https://github.com/kupriyanenko/jbone/wiki/Event#triggerevent)\n\n[Manipulation](https://github.com/kupriyanenko/jbone/wiki/Manipulation)\n\n* [.html()](https://github.com/kupriyanenko/jbone/wiki/Manipulation#html)\n* [.html(content)](https://github.com/kupriyanenko/jbone/wiki/Manipulation#htmlcontent)\n* [.append(content)](https://github.com/kupriyanenko/jbone/wiki/Manipulation#appendcontent)\n* [.appendTo(element)](https://github.com/kupriyanenko/jbone/wiki/Manipulation#appendtoelement)\n* [.empty()](https://github.com/kupriyanenko/jbone/wiki/Manipulation#empty)\n* [.remove()](https://github.com/kupriyanenko/jbone/wiki/Manipulation#remove)\n\n[Traversing](https://github.com/kupriyanenko/jbone/wiki/Traversing)\n\n* [.find(selector)](https://github.com/kupriyanenko/jbone/wiki/Traversing#findselector)\n* [.get(index)](https://github.com/kupriyanenko/jbone/wiki/Traversing#getindex)\n* [.eq(index)](https://github.com/kupriyanenko/jbone/wiki/Traversing#eqindex)\n* [.parent()](https://github.com/kupriyanenko/jbone/wiki/Traversing#parent)\n* [.toArray()](https://github.com/kupriyanenko/jbone/wiki/Traversing#toarray)\n* [.add(selector)](https://github.com/kupriyanenko/jbone/wiki/Traversing#addselector)\n* [.add(elements)](https://github.com/kupriyanenko/jbone/wiki/Traversing#addelements)\n* [.add(html)](https://github.com/kupriyanenko/jbone/wiki/Traversing#addhtml)\n* [.add(selection)](https://github.com/kupriyanenko/jbone/wiki/Traversing#addselection)\n* [.add(selector, context)](https://github.com/kupriyanenko/jbone/wiki/Traversing#addselector-context)\n\n[Utilities](https://github.com/kupriyanenko/jbone/wiki/Utilities)\n\n* [jBone.merge(first, second)](https://github.com/kupriyanenko/jbone/wiki/Utilities#jbonemergefirst-second)\n* [jBone.contains(container, contained)](https://github.com/kupriyanenko/jbone/wiki/Utilities#jbonecontainscontainer-contained)\n* [jBone.extend(target[, object1][, objectN])](https://github.com/kupriyanenko/jbone/wiki/Utilities#jboneextendtarget-object1-objectn)\n* [jBone.makeArray(obj)](https://github.com/kupriyanenko/jbone/wiki/Utilities#jbonemakearrayobj)\n* [jBone.unique(array)](https://github.com/kupriyanenko/jbone/wiki/Utilities#jboneuniquearray)\n\n[Array methods](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype#Methods)\n\n* [.pop()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/pop)\n* [.push()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/push)\n* [.reverse()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/reverse)\n* [.shift()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/shift)\n* [.sort()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/sort)\n* [.splice()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/splice)\n* [.unshift()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/unshift)\n* [.concat()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/concat)\n* [.join()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/join)\n* [.slice()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/slice)\n* [.indexOf()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/indexOf)\n* [.forEach()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/forEach)\n* [.every()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/every)\n* [.some()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/some)\n* [.filter()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/filter)\n* [.map()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/map)\n* [.reduce()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/reduce)\n* [.reduceRight()](https://developer.mozilla.org/docs/JavaScript/Reference/Global_Objects/Array/reduceRight)\n\n[Internals](https://github.com/kupriyanenko/jbone/wiki/Internals)\n\n* [.pushStack(elements)](https://github.com/kupriyanenko/jbone/wiki/Internals#pushstackelements)\n\n## Running the Tests\n\n### Node\n\n1. `npm install`\n2. `npm test`\n\n### Browsers\n\n1. `bower install`\n2. Open page with tests in browser `test/tests.html`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkupriyanenko%2Fjbone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkupriyanenko%2Fjbone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkupriyanenko%2Fjbone/lists"}