Just wanted to add a strange behaviour, I recognized inspecting the
code at runtime with firebug.
When I set a breakpoint in the line after I set the load image ($("img
[name='imageChange']").attr('src',
'load.gif');). The image is correctly displayed and stays after I
continue execution until the end of the operation.
This is the behaviour I want, but when the code is executed without
setting a breakpoint, the line seems to be just skipped?!?

Got no clue...

On 16 Jun., 17:23, "Jens L." <jenslu...@gmail.com> wrote:
> Hey guys,
> i have following problem: When the user on my website presses a image
> link, I prevent the default behaviour, and toggle some table rows
> (show or hide them, depending on the the image src (closed.gif /
> opened.gif)). Since I got a lot of rows I run over and toggle, the
> function takes some time to process and the browser "hangs" in the
> meanwhile. Due to this I want to show the user that the operation is
> still in progress and want to change the image of the link to a load
> spinner until it is finished. So I thought that I just have to change
> the src URL of the image in advance and then start the function, but
> jQuery is ignoring the line and I don't know why?!?
>
> Here is the code I am using:
>         $("a[name='changeDisplayModeAll']").click(function(e) {
>                 e.preventDefault();
>                 var newStatus;
>                 var imageSrc = $("img[name='imageChange']").attr('src');
>                 $("img[name='imageChange']").attr('src',
> 'load.gif'); // Here I want to change to the load image
>                 var rep = "";
>                // check if table rows should be hided or shown
>                 if(imageSrc.match("closed")) {
>                         newStatus = "opened";
>                         rep = imageSrc.replace("closed", "opened");
>                 } else {
>                         newStatus = "closed"
>                         rep = imageSrc.replace("opened", "closed");
>                 }
>                 // now the long-lasting function
>                 // remark: i get the ids for the table row from a
> select box where all projects (which i want to
>                 // show /hide) are listed with id which i need to
> identify the table rows
>                 $("#editProject > *").each(function() {
>                         var projectId = $(this).val();
>                         if(projectId && projectId != '-1') {
>                                 var image = $("img[name='image_" + projectId 
> + "']").attr('src');
>                                 var statusChanged = false;
>                                 if(image) {
>                                         if(image.match("closed") && newStatus 
> == "opened") {
>                                                 statusChanged = true;
>                                                 rep = image.replace("closed", 
> "opened");
>                                                 $("img[name='image_" + 
> projectId + "']").attr('src', rep);
>                                                 $.cookies.set('tree' + 
> projectId, 'on');
>                                         }
>                                         if(image.match("opened") && newStatus 
> == "closed") {
>                                                 statusChanged = true;
>                                                 rep = image.replace("opened", 
> "closed");
>                                                 $("img[name='image_" + 
> projectId + "']").attr('src', rep);
>                                                 $.cookies.set('tree' + 
> projectId, 'off');
>                                         }
>                                         if(statusChanged) {
>                                                 
> $("tr[title='projectScenarios_" + projectId + "']").each(function
> (i) {
>                                                         $(this).toggle();
>                                                 });
>                                                 $("tr[title='scenariosCases_" 
> + projectId + "']").each(function
> (i) {
>                                                         $(this).toggle();
>                                                 });
>                                         }
>                                 }
>                         }
>                 });
>                // now return to the old image
>                 $("img[name='imageChange']").attr('src', rep);
>         });
>
> Hope someone could help me with this issue.
> Thanks in advance,
> Jens

Reply via email to