A lightweight jQuery plugin for complex two-way
data binding in real time.
jQuery.my is a plugin for real time two-way data binding. It mutates object given as data source, reflecting interactions between user and UI.
jQuery.my recognize both standard HTML controls and complex composites created using rich ui plugins. Controls built with jQuery UI, Select2, CodeMirror, Ace, Redactor, CLeditor, jQuery Mobile are supported out of the box.
jQuery.my provides comprehensive validation, conditional formatting, complex dependencies, runtime form structure manipulation. $.my forms can run nested, each jQuery.my instance can be a composite control for parent form.
Syntax of $.my manifest is very simple, lean and unobtrusive.
Use Code button to edit source code of examples. Use Run button to exec your edits. To mention, code editors and sandboxes are also $.my apps.
Data is loaded when app starts, and then indexed locally for faster search. All texts in the table are clickable.
Mobile platforms may fail to show 5x zoom – image is too large for mobile browsers, sorry.
All control points are draggable, jQuery UI Draggable plugin is applied to manage them.
This demo reflects data to localStorage. Reload page – curve shape remains the same.
Use handles to drag pages and blocks around. Layout you build is continuously stashed under
AdLayout key into localStorage, so you can reload page and take your layout back.
Application itself (without HTML and CSS) is ~100 sloc long and contains 3 nested manifests – app, page and block. Draggable items are built with jQuery UI Sortable.
The form also illustrates how
$.my.modal() works. Click control’s type to popup control’s init code.
To run any demo as a standalone page just wrap manifest with this code:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- General stylesheet -->
<link rel="stylesheet" type="text/css"
<!-- Specific tune ups -->
<link rel="stylesheet" type="text/css" href="http://cloudwall.me/cw.css" />
<!-- Contains Sugar, jQuery, jQuery.my -->
<!-- Contains different rich ui plugins -->
<div id="form" class="p50 w750">
<!-- Container for app -->
// Manifest goes here
/* Container for CSS code */
An entire set of libs is ~330 Kb gzipped, $.my takes 25Kb.
Plugin set cw.plugins.js incorporates a lot of ui libs, not necessary needed in every single app. Minimal set of libs required to run $.my forms is <90Kb gzipped.
|jQuery 1.11.0||jQuery. Migrate toolkit also included. Required.|
|Sugar.js 1.4.1||A library that extends native js objects with helpful methods. Required.|
|jQuery.tags||A plugin to show tag lists.|
|jQuery UI 1.10||jQuery UI is a curated set of user interface interactions, effects, widgets, and themes.|
|jQuery TouchPunch||Translates touch events into clicks.|
|Redactor 8.25||WYSIWYG editor, slightly modified version (two minor bug fixes).|
|JCrop||A library providing image cropping functionality.|
|jQuery list||A plugin to manage long complex lists.|
|d3||A library for manipulating graphics based on data.|
|jQuery tmpl||Template engine.|