I am trying to upload some images and display them in an empty DIV, and after loading, if I hover over the image, I should get a delete icon so that users can delete it using animation and move the next image to the remote image position.
How do I achieve this?
This is how I load and add a div to the container:
<script type="text/javascript"> $(function () { document.getElementById('Nextbutton').style.visibility = "hidden"; // show $("#uploader").plupload({ // General settings runtimes: 'gears,flash,silverlight,browserplus,html5', url: 'Test.aspx', max_file_size: '10mb', max_file_count: 20, chunk_size: '1mb', unique_names: true, filters: [ { title: "Image files", extensions: "jpg,gif,png" }, { title: "Zip files", extensions: "zip" } ], flash_swf_url: 'js/plupload.flash.swf', silverlight_xap_url: 'js/plupload.silverlight.xap' }); $('form').submit(function (e) { var uploader = $('#uploader').plupload('getUploader'); if (uploader.files.length > 0) { uploader.bind('StateChanged', function () { if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) { $('form')[0].submit(); } }); uploader.start(); } else //alert('You must at least upload one file.'); return false; }); var uploader = $('#uploader').plupload('getUploader'); uploader.bind('FilesAdded', function (up, files) { // jQuery('#container a').html(''); $('#container > *').remove(); var i = 0; while (i++ < up.files.length) { var ii = i; while (ii < up.files.length) { if (up.files[i - 1].name == up.files[ii].name) { $.msgBox({ title: "Ooops", content: "There is already an image with the same filename and cannot be added.", type: "error", showButtons: true, opacity: 0.9, autoClose: false }); uploader.removeFile(up.files[ii]); } else { ii++; } } } if (i > 20) { $.msgBox({ title: "Info", content: "Uuh! Please don't put me any more files.<br>Maximum Upload limit is only 20 Images.<br>Rest of the Images will be removed.", type: "info", showButtons: true, opacity: 0.9, autoClose: false }); $('#uploader_browse').hide(); } }); uploader.bind('FilesRemoved', function (up, files) { if (up.files.length < 20) { $('#uploader_browse').fadeIn("slow"); } }); uploader.bind('FileUploaded', function (up, file, res) { $('#container').append("<div class='container a'><a href='uploads/" + document.getElementById("currentDirectory").value + "/" + file.name + "' rel='prettyPhoto' target='blank'><img src='uploads/" + document.getElementById("currentDirectory").value + "/" + file.name + "' width='64' height='64'/></a></div>"); var $imageContainers = $('#container a'); $imageContainers.each(function (index) { $(this).delay(index * 50).fadeTo(400, 0.5); }); $imageContainers.mouseover(function () { $(this).css('opacity', 1); $(this).find('span.del').show(); }); $imageContainers.mouseout(function () { $(this).css('opacity', 0.5); $(this).find('span.del').hide(); }); if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) { document.getElementById('Nextbutton').style.visibility = "visible"; // show showStickySuccessToast(); } uploader.removeFile(file); }); }); function randomString(length) { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split(''); if (!length) { length = Math.floor(Math.random() * chars.length); } var str = ''; for (var i = 0; i < length; i++) { str += chars[Math.floor(Math.random() * chars.length)]; } return str; } </script>
Here is my div where I display Images:
<div id="container"> </div>