Darren, I found the actual problem. It wasn't the lack of {} in the grep
method - that was a red herring. (There's nothing wrong with the grep method
that {} would fix.)

Your page is loading script.aculo.us effects.js v1.7.1_beta3. This file
defines Array.prototype.call as a function.

That causes massive confusion inside jQuery 1.2.6, but not in 1.2.3. The
reason is the change that was made to jQuery's makeArray() function in 1.2.6
- if the code is passed an array that has a call method, it mistakenly
thinks it is not an array and does the wrong thing - line 1135 of
jquery-1.2.6.js is the pertinent code here. (The correct fix isn't
immediately obvious, but I'll file a ticket on this.)

As it happens, the current version of script.aculo.us effects.js, v1.8.1, no
longer defines Array.prototype.call.

Can you upgrade to the latest version of prototype.js and the various
script.aculo.us files you're including? That would fix the problem.

But are you actually using script.aculo.us and prototype.js in your code at
all? I noticed that there is no jQuery.noConflict() call in your code, which
means that including jQuery would break any prototype/script.aculo.us code
because of the conflict over the $() function.

I tried removing all the script.aculo.us and prototype script tags and
didn't see any errors on the page. So if you're not using them, you could
just remove these files.

-Mike

Reply via email to