I'm a beginner of jQuery, so the answer to this can be quite simple:
I have an image, and I would like to do a few things with it. When the user clicks on the "Zoom" icon, I launch the "imagetool" plugin ( http://code.google.com/p/jquery-imagetool/ ) to download a larger version of the image. The plugin creates a new div around the image and allows the user to move around.
When the user clicks on the alternate image, I delete the old one and upload it to the new one.
The problem occurs when the user clicks on an alternative image and then presses the zoom button - the imagetool plugin creates a new div, but the image appears after it ...
The code is as follows:
// Product Zoom (jQuery) $(document).ready(function(){ $("#productZoom").click(function() { // Set new image src var imageSrc = $("#productZoom").attr("href"); $("#productImage").attr('src', imageSrc); // Run the imagetool plugin on the image $(function() { $("#productImage").imagetool({ viewportWidth: 300, viewportHeight: 300, topX: 150, topY: 150, bottomX: 450, bottomY: 450 }); }); return false; }); }); // Alternative product photos (jQuery) $(document).ready(function(){ $(".altPhoto").click(function() { $('#productImageDiv div.viewport').remove(); $('#productImage').remove(); // Set new image src var altImageSrc = $(this).attr("href"); $("#productZoom").attr('href', altImageSrc); var img = new Image(); $(img).load(function () { $(this).hide(); $('#productImageDiv').append(this); $(this).fadeIn(); }).error(function () { // notify the user that the image could not be loaded }).attr({ src: altImageSrc, id: "productImage" }); return false; }); });
It seems to me that the imagetool plugin can no longer see the #productImage image after replacing it with a new image ... So I think this has something to do with the binding? Since the new image is added to dom after the page loads, the iamgetool plugin can no longer use it correctly ... is this correct? If so, any ideas how to deal with this?
source share