Prepopulate Example Droppable Jquery

JayZeeBoy
JayZeeBoy used Ask the Experts™
on
See:
http://jqueryui.com/demos/droppable/#photo-manager

How would I alter this code to prepopulate the "trash"  with some pictures?  I want to come into the page with certain images already in the trash.  For this example, the IDs of the images can be hardcoded into the script.  I want to send deleteImage an array of IDs to delete when the page loads, in other words.


http://jqueryui.com/demos/droppable/#photo-manager

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Chad HaneyChief Technology Officer

Commented:
Looks like you should be able to use deleteImage($('imgID'));  Since you want an array you would prob want to loop to push each item in the array through this function.

Author

Commented:
Got it.  Can you show me an example of how I would look through an array of IDs to push them through the deleteImage function?

Thank you!
Chief Technology Officer
Commented:
here is a working example.

var deleteArray = new Array("firstPic","thirdPic");

put all of the IDs you want in that array.
<html>
<head>
			<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
			<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" type="text/javascript"></script>
			<script src="http://jquery-ui.googlecode.com/svn/tags/latest/external/bgiframe/jquery.bgiframe.min.js" type="text/javascript"></script>
			<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/minified/i18n/jquery-ui-i18n.min.js" type="text/javascript"></script>
 
			<script src="/js/demos.js" type="text/javascript"></script>
			<script src="/themeroller/themeswitchertool/" type="text/javascript"></script>
 
<style type="text/css">
			#gallery { float: left; width: 65%; min-height: 12em; } * html #gallery { height: 12em; } /* IE6 */
			.gallery.custom-state-active { background: #eee; }
			.gallery li { float: left; width: 96px; padding: 0.4em; margin: 0 0.4em 0.4em 0; text-align: center; }
			.gallery li h5 { margin: 0 0 0.4em; cursor: move; }
			.gallery li a { float: right; }
			.gallery li a.ui-icon-zoomin { float: left; }
			.gallery li img { width: 100%; cursor: move; }
 
			#trash { float: right; width: 32%; min-height: 18em; padding: 1%;} * html #trash { height: 18em; } /* IE6 */
			#trash h4 { line-height: 16px; margin: 0 0 0.4em; }
			#trash h4 .ui-icon { float: left; }
			#trash .gallery h5 { display: none; }
		</style>
		<script type="text/javascript">
			$(function() {
				// there's the gallery and the trash
				var $gallery = $('#gallery'), $trash = $('#trash');
 
				// let the gallery items be draggable
				$('li',$gallery).draggable({
					cancel: 'a.ui-icon',// clicking an icon won't initiate dragging
					revert: 'invalid', // when not dropped, the item will revert back to its initial position
					containment: $('#demo-frame').length ? '#demo-frame' : 'document', // stick to demo-frame if present
					helper: 'clone',
					cursor: 'move'
				});
 
				// let the trash be droppable, accepting the gallery items
				$trash.droppable({
					accept: '#gallery > li',
					activeClass: 'ui-state-highlight',
					drop: function(ev, ui) {
						deleteImage(ui.draggable);
					}
				});
 
				// let the gallery be droppable as well, accepting items from the trash
				$gallery.droppable({
					accept: '#trash li',
					activeClass: 'custom-state-active',
					drop: function(ev, ui) {
						recycleImage(ui.draggable);
					}
				});
 
				// image deletion function
				var recycle_icon = '<a href="link/to/recycle/script/when/we/have/js/off" title="Recycle this image" class="ui-icon ui-icon-refresh">Recycle image</a>';
				function deleteImage($item) {
					$item.fadeOut(function() {
						var $list = $('ul',$trash).length ? $('ul',$trash) : $('<ul class="gallery ui-helper-reset"/>').appendTo($trash);
 
						$item.find('a.ui-icon-trash').remove();
						$item.append(recycle_icon).appendTo($list).fadeIn(function() {
							$item.animate({ width: '48px' }).find('img').animate({ height: '36px' });
						});
					});
				}
 
				// image recycle function
				var trash_icon = '<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>';
				function recycleImage($item) {
					$item.fadeOut(function() {
						$item.find('a.ui-icon-refresh').remove();
						$item.css('width','96px').append(trash_icon).find('img').css('height','72px').end().appendTo($gallery).fadeIn();
					});
				}
 
				// image preview function, demonstrating the ui.dialog used as a modal window
				function viewLargerImage($link) {
					var src = $link.attr('href');
					var title = $link.siblings('img').attr('alt');
					var $modal = $('img[src$="'+src+'"]');
 
					if ($modal.length) {
						$modal.dialog('open')
					} else {
						var img = $('<img alt="'+title+'" width="384" height="288" style="display:none;padding: 8px;" />')
							.attr('src',src).appendTo('body');
						setTimeout(function() {
							img.dialog({
									title: title,
									width: 400,
									modal: true
								});
						}, 1);
					}
				}
 
				// resolve the icons behavior with event delegation
				$('ul.gallery > li').click(function(ev) {
					var $item = $(this);
					var $target = $(ev.target);
 
					if ($target.is('a.ui-icon-trash')) {
						deleteImage($item);
					} else if ($target.is('a.ui-icon-zoomin')) {
						viewLargerImage($target);
					} else if ($target.is('a.ui-icon-refresh')) {
						recycleImage($item);
					}
 
					return false;
				});
				
				var deleteArray = new Array("firstPic","thirdPic");
				for(var i=0;i<deleteArray.length;i++){
					var $item = $('#'+deleteArray[i]);
					deleteImage($item);	
				}
			});
 
		</script>
</head>
<body>	
	
		<div class="demo ui-widget ui-helper-clearfix">
 
			<ul id="gallery" class="gallery ui-helper-reset ui-helper-clearfix">
				<li class="ui-widget-content ui-corner-tr" id="firstPic">
					<h5 class="ui-widget-header">High Tatras</h5>
					<img src="http://jqueryui.com/demos/droppable/images/high_tatras_min.jpg"  alt="The peaks of High Tatras" width="96" height="72"//>
					<a href="images/high_tatras.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
					<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
				</li>
				<li class="ui-widget-content ui-corner-tr" id="secondPic">
					<h5 class="ui-widget-header">High Tatras 2</h5>
					<img src="http://jqueryui.com/demos/droppable/images/high_tatras2_min.jpg"  alt="The chalet at the Green mountain lake" width="96" height="72" //>
					<a href="images/high_tatras2.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
					<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
				</li>
				<li class="ui-widget-content ui-corner-tr" id="thirdPic">
					<h5 class="ui-widget-header">High Tatras 3</h5>
					<img src="http://jqueryui.com/demos/droppable/images/high_tatras3_min.jpg"  alt="Planning the ascent" width="96" height="72" //>
					<a href="images/high_tatras3.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
					<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
				</li>
				<li class="ui-widget-content ui-corner-tr" id="fourthPic">
					<h5 class="ui-widget-header">High Tatras 4</h5>
					<img src="http://jqueryui.com/demos/droppable/images/high_tatras4_min.jpg"  alt="On top of Kozi kopka" width="96" height="72" //>
					<a href="images/high_tatras4.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
					<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
				</li>
			</ul>
 
			<div id="trash" class="ui-widget-content ui-state-default">
				<h4 class="ui-widget-header"><span class="ui-icon ui-icon-trash">Trash</span> Trash</h4>
			</div>
 
		</div><!-- End demo -->
 
		<div class="demo-description">
 
			<p>You can delete an image either by dragging it to the Trash or by clicking the trash icon.</p>
			<p>You can "recycle" an image by dragging it back to the gallery or by clicking the recycle icon.</p>
			<p>You can view larger image by clicking the zoom icon. jQuery UI dialog widget is used for the modal window.</p>
 
		</div><!-- End demo-description -->
</body>
</html>

Open in new window

Author

Commented:
AWESOME!

Thank you!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial