From b48b8db2d1bd92b6f23e1241fa1ca0cb5597dc35 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rn=20Zaefferer?= Date: Wed, 3 Sep 2008 15:29:45 +0000 Subject: [PATCH] layout demo: update up/down controls when adding elements from toolbox --- demos/real-world/layout/demo.js | 28 +++++++++++++++++++--------- 1 file 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('updown') + .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 = 'updown'; var tpl = '
{name}' + options + '
{desc}
'; 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('add'); - $('dt', $els).append('updown'); + $('dt', $els).each(addControls); + //$('dt', $els).append('updown'); $('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"), -- 2.39.5