Hi Michael,

Sorry about the confusion.
I'll try your solutions, but as I'm just "invited" to the page I'm
working I can't downgrade scriptaculous.
But I'll try with an older jquery or with the little tweak. I'll we
back with the results.

On 26 sep, 10:34, "Michael Geary" <[EMAIL PROTECTED]> wrote:
> > Its important to know that I'm almost unable to change a bit
> > of markup or other js libraries code, I'm being injected
> > along with jQuery to this site, so I'm more like a "guest" in
> > this uber-mix of js.
>
> Could you quote the relevant text from previous message(s) in your replies?
> For those of us who read the group on the mailing list, it makes it easier
> to keep track of what's being discussed.
>
> For this message, the part I had to hunt down was:
>
> > The jquery is 1.2.6 and scriptaculous is v1.7.0
>
> There's a known conflict between those two versions. I filed a bug report on
> it and it was rejected as "wontfix". I can't get into the bug tracker or I
> would look up the bug number.
>
> The easiest fixes would be to either:
>
> 1) Upgrade Scriptaculous from 1.7.0 (which I believe was considered a beta)
> to the current release version, 1.8.1 or so.
>
> 2) Downgrade jQuery to 1.2.3.
>
> More work, but a better fix, would be to revisit the bug and come up with a
> patch.
>
> The problem is in this jQuery function:
>
>     makeArray: function( array ) {
>         var ret = [];
>
>         if( array != null ){
>             var i = array.length;
>             //the window, strings and functions also have 'length'
>             if( i == null || array.split || array.setInterval || array.call
> )
>                 ret[0] = array;
>             else
>                 while( i )
>                     ret[--i] = array[i];
>         }
>
>         return ret;
>     },
>
> It's the array.call test at the end of the if statement. Scriptaculous 1.7.0
> defines an Array.prototype.call method, which confuses that test. This
> jQuery code expects that arrays do *not* have a call method (nor split nor
> setInterval), so that addition by Scriptaculous causes this test to go
> wrong.
>
> I'm not sure what specific browser or condition that array.call test is
> supposed to guard against. (Ariel, if you happen to see this message, I
> believe this was your code; do you recall any of the specifics on why those
> three particular methods needed to be tested?)
>
> You could just try removing the array.call in your copy of jQuery and see
> what happens:
>
>     makeArray: function( array ) {
>         var ret = [];
>
>         if( array != null ){
>             var i = array.length;
>             //the window, strings and functions also have 'length'
>             if( i == null || array.split || array.setInterval )
>                 ret[0] = array;
>             else
>                 while( i )
>                     ret[--i] = array[i];
>         }
>
>         return ret;
>     },
>
> That will fix the Scriptaculous conflict, but I don't know what other
> problems it may introduce. If it does cause any problems, then maybe there
> is some other method name that could be tested instead of array.call to
> achieve the same end.
>
> -Mike

Reply via email to