Hi Shelane,

I just had major issues today adding some jQuery (1.2.6) to an old site that has legacy Prototype code. This has come up a few times before on the list, but I totally forgot about that while I was in the midst of my agony. If I recall correctly, the conflict only occurs with certain versions of Prototype.

I got around my particular issue by calling the same function separately on two IDs instead of calling it just once with both IDs in a single selector. Maybe Prototype is doing something funky to the arrays that jQuery selectors build? I don't know.

I wonder if Ariel's suggestion from a previous post on the dev list -- "If you upgrade Scriptaculous to 1.8.1, it should work well" -- would apply here as well.

<pause/> <search/>

Aha! Michael Geary explains it here: [1]

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.

[1] 
http://groups.google.com/group/jquery-en/browse_thread/thread/5a83b3b23e38a6a7/5a91e47087a1555e?hl#msg_c63cabcb38ffcb8b

Anyway, thanks for jogging my memory with your post. Maybe I'll revisit my code in the morning and see if I can upgrade prototype and get a less hacky solution going.

--Karl
____________
Karl Swedberg
www.englishrules.com
www.learningjquery.com




On Jul 8, 2008, at 5:27 PM, Shelane wrote:


It looks like the problem has to do with me still having prototype on
the page.  It's the first jQuery site I ever did and the autocomplete
plugin wasn't far enough along for me to use at that point.  I've
pointed to an older version of jQuery until I get around to rewriting
that page to use the jQuery autocomplete.

On Jul 8, 1:39 pm, Shelane Enos <[EMAIL PROTECTED]> wrote:
I just found out that this function that worked (doubled checked to confirm) worked under 1.2.4 but isn't working under 1.2.6. I'm not sure what. Can
anyone see anything obvious?

bindDeleteLinks = function(who){
       $("a.rembtn", '#' + who).unbind('click');
       $("a.rembtn", '#' + who).click(function(){
       console.log('bound and clicked ' + who);
           $(('#' + this.id + 'row')).css({display:'none'});
$.get('includes/tools/runtime.lasso?task=meetings&who=' + who +
'&method=remove&pageID=' + pageID + '&rel=' + this.id);
           return false;
       });
   }

Under 1.2.6, the console message doesn't even show.

Reply via email to