Saturday, July 25, 2009

[jQuery] Re: appendCache issue in tablesorter with IE7/IE8

bump

anyone?

On Jul 21, 6:18 pm, postme <meint.p...@gmail.com> wrote:
> Hi everybody,
>
> I'm using the tablesorter plugin with the zebra widget and I've run
> into an
> issue with IE8. I'm setting a number of tablerow (tr) elements to
> invisible
> and then run a tablesorter update + appendCache action to make sure
> the
> zebra widget picks up on the changed structure of the table. This
> works fine
> in all browsers except IE8. With a bit of debugging I've pinpointed it
> with
> reasonable certainty to the appendCache function in tablesorter
> (actually
> appendToTable) but I can't find anything to explain why IE8 will not
> cooperate.
>
> My own code is copied in below. What it does is that dependent on a
> value in
> a dropdown box and a match with a server-side generated javascript
> array it
> will hide certain tablerows.
>
> Any help in explaining why tablesorter+zebra doesn't process this
> correctly
> in IE8 would be much appreciated!
>
> $('.dropdown_hide').change(function() {
>         // Reset the checked flag for all checkboxes
>         $('input:checkbox').each(
>             function() {
>                 this.checked = '';
>             }
>         );
>         // Add class=hidden to every tr that is the grandparent of a
> checkbox
>           $('input:checkbox').each(
>             function() {
>                 $(this).parent().parent('tr').addClass('hidden');
>             }
>         );
>         // Remove the hidden class from the table header
>         $('#select_deselect').parent().parent('tr').removeClass
> ('hidden');
>         // Loop through the javascript array and see if there's a
> match with
>         // the value that's provided by the dropdown. If there's a
> match
>         // remove the class=hidden so the tr is shown
>         if ($('select').val() == 0) {
>             $('input:checkbox').each(
>                 function() {
>                     $(this).parent().parent('tr').removeClass
> ('hidden');
>                 }
>             );
>         } else {
>             for (i = 0; i < rbacArray.length; i++ ) {
>                 if (rbacArray[i][0] == $('select').val()) {
>                     $('input:checkbox').each(
>                         function() {
>                             if ($(this).val() == rbacArray[i][1]) {
>                                $(this).parent().parent
> ('tr').removeClass('hidden');
>                             }
>                         }
>                     );
>                 }
>             }
>         }
>         $(".stripeMe").trigger("update");
>         $(".stripeMe").trigger("appendCache");
>     });
>
> Thanks, Meint

No comments: