I had a good look at this...
(not that you are not absolutely right Dave)
The way I have done this is
exactly how this works in using jQuery plugins. The only difference I could
detect was in the full use of jquery as opposed to $.
There was an undefined var that
occurred on some pages that I put inside a ‘if’ which solved the
major issue being that the code broke the JS in the IMCE file upload. I
wouln’t have thought an undefined var would break code in other modules
but there you go.
An outstanding issue now is that
the code fails if I move from jQuery 1.7 > 1.8. That could well apply to
other modules as well. Most likely I’ll ignore the issue, and at some
point it will bite me again. J
Yani
From: support-bounces@drupal.org
[mailto:support-bounces@drupal.org] On Behalf Of Metzler, David
Sent: Tuesday, 04 June 2013 1:24 AM
To: support@drupal.org
Subject: Re: [support] Jquery code revision...
IN case no ones
responded.
The
Drupal.beavoirs.mybehaviorname = {attach :Mycustomdocumentreadyfunction }
is a direct replacement for the document.ready override. You should
always use this form in drupal to make sure that you don’t have multiple
javascript files/functions overidding document.read. Whether you
move the code up into your zeroPoint behavior or whether you create a new
behavior on the Drupal.behaviors object is a matter of code organization and
totally up to you.
Dave
From: support-bounces@drupal.org
[mailto:support-bounces@drupal.org] On Behalf Of Yani
Sent: Friday, May 31, 2013 7:32 PM
To: support@drupal.org
Subject: [support] Jquery code revision...
I need a hint on this... I've mentioned
it before but couldn't get my head around it and put it in the too hard basket.
Of course it has come back and bitten me again.
What's happening is
my JS code is causing some other code to break.
There are 2 ways
I've used the JS...
(function($) {
Drupal.behaviors.zeroPoint = {
attach : function(context, settings) {
//Drupal Jquery wrapper
Button items
in here that call functions
//end wrapper
}
}
})(jQuery);
// Note the wrapper
is different for Drupal Behaviors
function
manageBlocks(menu) {( function($) {
$(document).ready(function() {
// jQuery wrapper
Functions
actions in here
//end wrapper
});
})(jQuery);
}
Can I just lift the
functions up and place them within the top section or do I need to write the
bottom section differently.
It just seems odd
that this wouldn’t be correct as is.
The sort of things
it impacts are Facebook blocks that don’t update and the file upload MCE
losses all JS abilities.
Note...
it’s been 12 months since I’ve touched this and I’m most
brain dead on it!
Yani