Asynchronous Content Editing Plugin - Fasteditor
File Size: | 24 KB |
---|---|
Views Total: | 938 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

Fasteditor is a lightweight jQuery plugin that allows you to edit any content on your webpage.
The plugin takes advantage of Promises API to handle operations asynchronously.
How to use it:
1. Load the Fasteditor plugin's script fasteditor.min.js
after jQuery library.
<script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/fasteditor.min.js"></script>
2. Add a unique ID to the element which should be editable.
<div class="item" data-id="123"> <h2 class="edit-it">Edit Me</h2> <p class="edit-it">Edit Me</p> </div>
3. Initialize the plugin on the element and add custom controls as follows.
let plugin = $el.fastEditor({ editMode: true, controlsPosition: 'bottom', editElementSelector: '.edit-it', controls: [{ tag: 'button', label: 'Remove', action: 'remove', class: 'remove-item-btn' }, { tag: 'button', label: 'Add new item', action: 'add', class: 'add-new-item-btn' }] }); let { workers, emitter } = plugin; // add workers.add = function(data) { return new Promise((res, rej) => { setTimeout(function() { let $el = $(data.parentNode); let item = $(`<article class="item"> <h2 class="edit-it">Title ${counter++}</h2> <p class="edit-it">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis sint quaerat sunt asperiores perferendis odio facere sed explicabo recusandae illo.</p> </article>`); initForItems(item); $el.append(item); res(); }, 1000); }); } // remove workers.remove = function(data) { console.log('Remove action received', data); return new Promise((res, rej) => { // Pseudo request setTimeout(function() { let $el = $(data.parentNode); $el.fadeOut(300, () => { $el.remove(); }); res(); }, 1000); }); } // edit workers.edit = function(data) { console.log('Edit action received', data); return new Promise((res, rej) => { // Pseudo request setTimeout(function() { res(); }, 1000); }); } // emitter emitter.all = function(event, data) { console.log(`Child ${event} event`, data); }
4. All default configuration options.
let plugin = $el.fastEditor({ attr: 'data-id', controlsPosition: 'top', // or 'bottom' editMode: true, editElementSelector: '.edit-it', successTimeout: 500, controls: [], elementPreHandler: function(el, data, parentNode) { return el; } });
This awesome jQuery plugin is developed by unbywyd. For more Advanced Usages, please check the demo page or visit the official website.