<div id="text-ajax-get-request"></div>
$l.ajax.getJson( 'test.json' ).done(function (response) { $l.dom.replace($l.id('text-ajax-get-request'), response.testResponse); }).fail(function (error) { $l.dom.replace(text, 'Error: ' + error.message); });
$l.anim.set({ object: document.body, property: 'scrollTop', from: null, to: 0, time: 800, unit: '', reset: false });
<div class="box" id="div-anim-css-animate"></div>
$l.anim.setCss({ object: $l.id('div-anim-css-animate'), property: 'top', from: 0, // current value to: 50, time: 1200, unit: 'px', reset: false });
<div class="box" id="div-css-transition"></div>
var box = $l.id('div-css-transition'); $l.css.setTransition( box, [ 'background-color', 'width 1s linear' ] ); $l.css.toggleClass(box, 'box-silver');
<div id="text-date-dates"></div>
var text = $l.id('text-date-dates'); var now = new Date(); var yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); $l.dom.clear(text); $l.dom.append(text, '<div><strong>From yesterday to today:</strong></div>'); $l.dom.append(text, $l.date.parseEpoch(now.getTime() - yesterday.getTime())); $l.dom.append(text, '<div><strong>Short Date:</strong></div>'); $l.dom.append(text, $l.date.getShortDateString(now) + '<br />'); $l.dom.append(text, '<div><strong>Short Date + month names:</strong></div>'); $l.dom.append(text, $l.date.getShortDateString(now, true) + '<br />'); $l.dom.append(text, '<div><strong>Long Date:</strong></div>'); $l.dom.append(text, $l.date.getLongDateString(now) + '<br />'); $l.dom.append(text, '<div><strong>Long Date + month names:</strong></div>'); $l.dom.append(text, $l.date.getLongDateString(now, true) + '<br />'); $l.dom.append(text, '<div><strong>Custom Date:</strong></div>'); $l.dom.append(text, $l.date.getCustomDateString('dd/MM/yyyy HH:ss', now) + '<br />');
<ul id="target-dom-clone"> <li>Item</li> </ul>
var target = $l.id('target-dom-clone'); $l.dom.clone(target.firstElementChild, $l.dom.cloneAppend);
<label><input id="checkbox-events-setting-events" type="checkbox" /> Check me</label> <div id="text-events-setting-events"></div>
var text = $l.id('text-events-setting-events'); $l.dom.setEvent( $l.id('checkbox-events-setting-events'), 'change', function(ev, element) { if (element.checked) { $l.dom.replace(text, 'checked'); } else { $l.dom.replace(text, 'unchecked'); } return false; } );
<form id="target-forms-serializing"> Username:<br /> <input type="text" name="username" value="eserozvataf" /><br /> Password:<br /> <input type="password" name="password" value="123456" /> </form> <div id="text-forms-serializing"></div>
var serialized = $l.forms.serialize($l.id('target-forms-serializing')); $l.dom.replace($l.id('text-forms-serializing'), JSON.stringify(serialized));
<form id="target-forms-toggle"> Username:<br /> <input type="text" name="username" value="eserozvataf" disabled="disabled" /><br /> Password:<br /> <input type="password" name="password" value="123456" /><br /> <label><input type="checkbox" name="rememberme" value="1" /> Remember me</label> </form> <div id="text-forms-toggle"></div>
$l.forms.toggleFormEditing($l.id('target-forms-toggle'));
<div id="text-helpers-helpers"></div>
var text = $l.id('text-helpers-helpers'); $l.dom.clear(text); $l.dom.append(text, '<div><strong>Unique Id Generator:</strong></div>'); $l.dom.append(text, $l.helpers.getUniqueId() + '<br />'); $l.dom.append(text, $l.helpers.getUniqueId() + '<br />'); $l.dom.append(text, '<div><strong>Query String Generation:</strong></div>'); $l.dom.append(text, $l.helpers.buildQueryString({ pageId: 5, showAll: 'yes' }) + '<br />'); $l.dom.append(text, '<div><strong>Transform string into camel case:</strong></div>'); $l.dom.append(text, $l.helpers.camelCase('text-align') + '<br />'); $l.dom.append(text, '<div><strong>Transform string back from camel case:</strong></div>'); $l.dom.append(text, $l.helpers.antiCamelCase('textAlign') + '<br />'); $l.dom.append(text, '<div><strong>Encoding special characters:</strong></div>'); $l.dom.append(text, $l.helpers.quoteAttr('<br clear="all" />') + '<br />'); $l.dom.append(text, '<div><strong>Generating random value:</strong></div>'); $l.dom.append(text, $l.helpers.random(1, 15) + '<br />'); $l.dom.append(text, $l.helpers.random(1, 15) + '<br />'); $l.dom.append(text, '<div><strong>Getting values from a single column:</strong></div>'); var arr = [{id: 1, count: 5}, {id: 2, count: 12}]; $l.dom.append(text, JSON.stringify($l.helpers.column(arr, 'count')) + '<br />'); $l.dom.append(text, '<div><strong>Shuffling values:</strong></div>'); $l.dom.append(text, $l.helpers.shuffle([1, 2, 3, 4, 5]) + '<br />'); $l.dom.append(text, '<div><strong>Merging objects:</strong></div>'); $l.dom.append(text, JSON.stringify($l.merge({id: 1}, {name: 'eser', count: 5})) + '<br />'); $l.dom.append(text, '<div><strong>Getting count of elements:</strong></div>'); $l.dom.append(text, $l.helpers.getLength({id: 1, name: 'eser', count: 5}) + '<br />'); $l.dom.append(text, '<div><strong>Getting elements with dot notation:</strong></div>'); $l.dom.append(text, $l.helpers.getElement({id: 1, child: { a: 1, b: 2 }}, 'child.a') + '<br />'); $l.dom.append(text, '<div><strong>Getting keys for dot notation:</strong></div>'); $l.dom.append(text, JSON.stringify($l.helpers.getKeysRecursive({id: 1, child: { a: 1, b: 2 }})) + '<br />');
<div class="box" id="div-storyboard-animation"></div>
var box = $l.id('div-storyboard-animation'); var step1action1 = function () { $l.css.setProperty(box, 'background-color', 'blue'); }; var step1action2 = $l.anim.setCss({ object: box, property: 'left', from: 0, // current value to: 50, time: 1200, unit: 'px', reset: false }); var step2 = function () { var deferred = $l.anim.setCss({ object: box, property: 'left', from: 50, // current value to: 0, time: 600, unit: 'px', reset: false }); myStory.add('second-step', deferred); }; var step3 = function () { $l.css.setProperty(box, 'background-color', 'red'); }; var myStory = new $l.storyboard(); myStory.addPhase('first-step'); myStory.addPhase('second-step'); myStory.addPhase('third-step'); myStory.add('first-step', step1action1); myStory.add('first-step', step1action2); myStory.add('second-step', step2); myStory.add('third-step', step3); myStory.start();
<div id="text-keys-assign"></div>
var text = $l.id('text-keys-assign'); var pressCount = 0; $l.keys.assign({ target: document, key: 'f7', callback: function() { $l.dom.replace(text, 'pressed: ' + ++pressCount); } });
<div id="mvcsimple"> Name: <input id="textbox-mvc-simple" type="text" value="" placeholder="Enter text" /> <br /> Entered: <span lr-bind="prop.textContent: name"> </div>
var myModel = new $l.types.observable({ name: '' }); $l.mvc.init('mvcsimple', myModel); $l.dom.setEvent( $l.id('textbox-mvc-simple'), 'keyup', function(ev, element) { myModel.name = element.value; return false; } );
<div id="mvccalculation"> A: <input type="text" name="a" value="3" size="3" lr-event="keyup, a: prop.value" /> B: <input type="text" name="b" value="5" size="3" lr-event="keyup, b: prop.value" /> <br /> Total: <span lr-bind="prop.textContent: total"></span> </div>
var myModel = new $l.types.observable({ a: 3, b: 5, total: function() { return parseInt(this.a) + parseInt(this.b); } }); $l.mvc.init('mvccalculation', myModel);
<div id="mvctwoway"> <input type="text" name="text" lr-bind="prop.value: text" lr-event="keyup, text: prop.value" /> <input type="button" value="Set" lr-event="click, text: 'clicked'" /> <br /> Value: <span lr-bind="prop.textContent: text"></span> </div>
var myModel = new $l.types.observable({ text: 'initial' }); $l.mvc.init('mvctwoway', myModel);
<div id="text-routes-routing"></div> <button id="button-routes-routing-1" class="btn btn-default">Route 1</button> <button id="button-routes-routing-2" class="btn btn-default">Route 1</button> <button id="button-routes-routing-3" class="btn btn-default">Route 1</button>
var text = $l.id('text-routes-routing'); var button1 = $l.id('button-routes-routing-1'); var button2 = $l.id('button-routes-routing-2'); var button3 = $l.id('button-routes-routing-3'); $l.routes.add( 'test/:name', function (name, trans) { $l.dom.clear(text); $l.dom.append(text, '<div><strong>Name:</strong></div>'); $l.dom.append(text, name + '<br />'); $l.dom.append(text, '<div><strong>Transition Data:</strong></div>'); $l.dom.append(text, JSON.stringify(trans) + '<br />'); } ); $l.routes.reload(); $l.dom.setEvent(button1, 'click', function () { $l.routes.go('test/route1'); }); $l.dom.setEvent(button2, 'click', function () { $l.routes.go('test/route2'); }); $l.dom.setEvent(button3, 'click', function () { $l.routes.go('test/route3'); });
<div id="text-routes-namedrouting"></div> <button id="button-routes-namedrouting-1" class="btn btn-default">Route 1</button> <button id="button-routes-namedrouting-2" class="btn btn-default">Route 1</button> <button id="button-routes-namedrouting-3" class="btn btn-default">Route 1</button>
var text = $l.id('text-routes-namedrouting'); var button1 = $l.id('button-routes-namedrouting-1'); var button2 = $l.id('button-routes-namedrouting-2'); var button3 = $l.id('button-routes-namedrouting-3'); $l.routes.addNamed( 'test2', 'testNamed/:name', function (name, trans) { $l.dom.clear(text); $l.dom.append(text, '<div><strong>Name:</strong></div>'); $l.dom.append(text, name + '<br />'); $l.dom.append(text, '<div><strong>Transition Data:</strong></div>'); $l.dom.append(text, JSON.stringify(trans) + '<br />'); } ); $l.routes.reload(); $l.dom.setEvent(button1, 'click', function () { $l.routes.goNamed('test2', { name: 'route1' }); }); $l.dom.setEvent(button2, 'click', function () { $l.routes.goNamed('test2', { name: 'route2' }); }); $l.dom.setEvent(button3, 'click', function () { $l.routes.goNamed('test2', { name: 'route3' }); });
<script id="script-templates-example" type="text/plain-template"> Name: {{name.first}} Age: {{age}} </script> <div id="text-templates-example"></div>
var text = $l.id('text-templates-example'); var script = $l.id('script-templates-example'); var model = { name: { first: 'Jane', last: 'Doe' }, age: 25 }; var result = $l.templates.apply(script, model); $l.dom.replace(text, result);
<div id="text-timers-set"></div>
var text = $l.id('text-timers-set'); $l.dom.replace(text, 'waiting...<br />'); $l.timers.set({ 'timeout': 500, 'reset': false, 'ontick': function() { $l.dom.append(text, 'time\'s up'); } });
<div class="box" id="div-touch-events"></div> <ul id="target-touch-events"></ul>
var box = $l.id('div-touch-events'); var target = $l.id('target-touch-events'); $l.dom.setEvent( box, 'tap', function(event) { var createdElement = $l.dom.createElement('LI', { }, 'tap'); target.appendChild(createdElement); } ); $l.dom.setEvent( box, 'dbltap', function(event) { var createdElement = $l.dom.createElement('LI', { }, 'dbltap'); target.appendChild(createdElement); } ); $l.dom.setEvent( box, 'longtap', function(event) { var createdElement = $l.dom.createElement('LI', { }, 'longtap'); target.appendChild(createdElement); } );
<div id="text-types-example"></div>
var myModel = new $l.types.observable(); myModel.set('id', 1); myModel.setRange({count: 15, name: 'eser'}); $l.dom.clear(text); $l.dom.append(text, '<div><strong>Element with key \'id\':</strong></div>'); $l.dom.append(text, myModel.get('id') + '<br />'); $l.dom.append(text, '<div><strong>Elements with keys \'id\' and \'name\':</strong></div>'); $l.dom.append(text, JSON.stringify(myModel.getRange(['id', 'name'])) + '<br />'); $l.dom.append(text, '<div><strong>Keys:</strong></div>'); $l.dom.append(text, JSON.stringify(myModel.keys()) + '<br />'); $l.dom.append(text, '<div><strong>Length:</strong></div>'); $l.dom.append(text, JSON.stringify(myModel.length()) + '<br />'); $l.dom.append(text, '<div><strong>Check if it has element with key \'name\':</strong></div>'); $l.dom.append(text, JSON.stringify(myModel.exists('name')) + '<br />');
<select id="select-vars" class="form-control"> <option value="cookie">Cookies</option> <option value="local">LocalStorage</option> <option value="session">SessionStorage</option> </select> <br /> <button id="button-vars-set" class="btn btn-default">Set</button> <button id="button-vars-read" class="btn btn-default">Read</button> <button id="button-vars-remove" class="btn btn-default">Remove</button> <div id="text-vars"></div>
var text = $l.id('text-vars'); var select = $l.id('select-vars'); $l.dom.setEvent( $l.id('button-vars-set'), 'click', function() { var storage = select.options[select.selectedIndex].value; $l.vars.set(storage, 'demopage', 'a ' + storage + ' test<br />'); $l.dom.append(text, storage + ' set'); return false; } ); $l.dom.setEvent( $l.id('button-vars-read'), 'click', function() { var storage = select.options[select.selectedIndex].value; var value = $l.vars.get(storage, 'demopage'); if (value !== null) { $l.dom.append(text, storage + '\'s value is: ' + value + '<br />'); } else { $l.dom.append(text, 'you need to set a ' + storage + ' first<br />'); } return false; } ); $l.dom.setEvent( $l.id('button-vars-remove'), 'click', function() { var storage = select.options[select.selectedIndex].value; $l.vars.remove(storage, 'demopage'); $l.dom.append(text, storage + ' is removed<br />'); return false; } );
<button id="button-when-set-1" class="btn btn-default">Button 1</button> <button id="button-when-set-2" class="btn btn-default">Button 2</button> <div id="text-when-set"></div>
var text = $l.id('text-when-set'); $l.dom.replace(text, 'click both buttons in any order<br />'); var promise1 = new $l.deferred(); var promise2 = new $l.deferred(); new $l.when(promise1, promise2) .then(function() { $l.dom.append(text, 'all set<br />'); }); $l.dom.setEvent( $l.id('button-when-set-1'), 'click', function() { $l.dom.append(text, 'button1 clicked...<br />'); promise1.resolve(); return false; } ); $l.dom.setEvent( $l.id('button-when-set-2'), 'click', function() { $l.dom.append(text, 'button2 clicked...<br />'); promise2.resolve(); return false; } );
index.html
and placing your scripts into assets/js/demos.js
file.