diff options
author | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2008-09-03 15:29:45 +0000 |
---|---|---|
committer | Jörn Zaefferer <joern.zaefferer@gmail.com> | 2008-09-03 15:29:45 +0000 |
commit | b48b8db2d1bd92b6f23e1241fa1ca0cb5597dc35 (patch) | |
tree | 877620cbbb6b211c4ba429d5e29367cd7704196e /demos | |
parent | 4ea6490a7b0e3012fdb584dc4d9d36de2ab46a2c (diff) | |
download | jquery-ui-b48b8db2d1bd92b6f23e1241fa1ca0cb5597dc35.tar.gz jquery-ui-b48b8db2d1bd92b6f23e1241fa1ca0cb5597dc35.zip |
layout demo: update up/down controls when adding elements from toolbox
Diffstat (limited to 'demos')
-rw-r--r-- | demos/real-world/layout/demo.js | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/demos/real-world/layout/demo.js b/demos/real-world/layout/demo.js index 28a330abf..7b0ee732d 100644 --- a/demos/real-world/layout/demo.js +++ b/demos/real-world/layout/demo.js @@ -1,5 +1,6 @@ (function($){ - function updateUpDown(sortable){ + function updateUpDown(sortable) { + console.log(this, sortable) $('dl:not(.ui-sortable-helper)', sortable) .removeClass('first').removeClass('last') .find('.up, .down').removeClass('disabled').end() @@ -7,7 +8,7 @@ .filter(':last').addClass('last').find('.down').addClass('disabled').end().end(); }; - function moveUpDown(){ + function moveUpDown() { var link = $(this), dl = link.parents('dl'), prev = dl.prev('dl'), @@ -22,9 +23,15 @@ updateUpDown(dl.parent()); }; + function addControls() { + $(this).append('<span class="options"><a class="up">up</a><a class="down">down</a></span>') + .find('a.up, a.down').bind('click', moveUpDown); + updateUpDown($(this).parents(".ui-sortable:first")); + } + var counter = 1; - function addItem(){ - var sortable = $(this).parents('.ui-sortable'); + function addItem() { + var sortable = $(this).parents('.ui-sortable:first'); var options = '<span class="options"><a class="up">up</a><a class="down">down</a></span>'; var tpl = '<dl class="sort"><dt>{name}' + options + '</dt><dd>{desc}</dd></dl>'; var html = tpl.replace(/{name}/g, 'Dynamic name ' + counter).replace(/{desc}/g, 'Description'); @@ -33,11 +40,11 @@ updateUpDown(sortable); }; - function emptyTrashCan(item){ + function emptyTrashCan(item) { item.remove(); }; - function sortableChange(e, ui){ + function sortableChange(e, ui) { if(ui.sender){ var w = ui.element.width(); ui.placeholder.width(w); @@ -45,7 +52,7 @@ } }; - function sortableUpdate(e, ui){ + function sortableUpdate(e, ui) { if(ui.element[0].id == 'trashcan'){ emptyTrashCan(ui.item); } else { @@ -60,10 +67,11 @@ var $els = $(els.toString()); $('h2', $els.slice(0,-1)).append('<span class="options"><a class="add">add</a></span>'); - $('dt', $els).append('<span class="options"><a class="up">up</a><a class="down">down</a></span>'); + $('dt', $els).each(addControls); + //$('dt', $els).append('<span class="options"><a class="up">up</a><a class="down">down</a></span>'); $('a.add').bind('click', addItem); - $('a.up, a.down').bind('click', moveUpDown); + //$('a.up, a.down').bind('click', moveUpDown); $els.each(function(){ updateUpDown(this); @@ -85,6 +93,8 @@ }, change: sortableChange, update: sortableUpdate + }).bind("sortreceive", function(e, ui) { + $(ui.item).removeClass('ui-draggable').find('dt').each(addControls); }); $('#components > dl').draggable({ connectToSortable: $els.not("#trashcan"), |