I not sure if this suits you, but you could split your functions to
separate files and then lazy load each js file as necessary.
In such case http://nicolas.rudas.info/jQuery/getPlugin/ may be
helpful

Otherwise I find Ricardo's suggestion the easiest. You could also do
some time tests to check whether calling these functions when not
really needed effects performance, and act accordingly

On Feb 9, 3:33 am, mkmanning <michaell...@gmail.com> wrote:
> *Tab+spacebar and it posts :P
>
> You could put your list of functions in an array in your external js,
> then call them on the window object in a loop:
> $(function() {
>         var funcs = [
>         'ManageCategoriesClick',
>         'HideByDefault',
>         'PrepareSplitForm',
>         'SetUpAdvertPopup',
>         'CheckAll',
>         'CheckNone',
>         'EditCategoryInPlace',
>         'PreparePaneLinks',
>         'PrepareToolTips'
>         ]
>
>         $.each(funcs,function(i,f){
>                 if(typeof(window[f]) == 'function'){
>                         window[f]();
>                 }
>         });
>  });
>
> On Feb 8, 5:21 am, Beau <zar...@gmail.com> wrote:
>
> > Thanks for the ideas everyone!
>
> > @Stephan: Yes, it's in an external JS file. I'd prefer to not have to
> > do any inline javascript. I've considered it, but thanks for the
> > suggestion!
>
> > @Ricardo: Thanks for those. I may end up doing a variation of them.
>
> > On Feb 8, 4:50 am, Stephan Veigl <stephan.ve...@gmail.com> wrote:
>
> > > Hi
>
> > > I guess you have your $().ready() function in an external js file,
> > > otherwise you could
> > > customize it for the according html page.
>
> > > Another construct similar to Ricardos one, but a bit more flexible:
>
> > > Use a global variable in every html file to specify the init functions
> > > you want to call for this page:
> > > <script type="text/javascript">
> > >         myInitFxn = [ManageCategoriesClick, HideByDefault, 
> > > PrepareSplitForm,...];
> > > </script>
>
> > > ready.js:
> > > $().ready(function(){
> > >         for(var i in myInitFxn) {
> > >                 myInitFxn[i](); // call init function
> > >         }
>
> > > });
>
> > > by(e)
> > > Stephan
>
> > > 2009/2/8 brian <bally.z...@gmail.com>:
>
> > > > On Sat, Feb 7, 2009 at 11:21 PM, Ricardo Tomasi <ricardob...@gmail.com> 
> > > > wrote:
>
> > > >> Alternatively you could add a different class to the body of each
> > > >> page, then use this rather amusing construct:
>
> > > >> $(document).ready((function(){
> > > >>  var is = function(v){ return ++document.body.className.indexOf(v) };
>
> > > >>  return(
> > > >>   is('categories')
> > > >>     ? ManageCategoriesClick :
> > > >>   is('hidebydefault')
> > > >>     ? HideByDefault :
> > > >>   is('form')
> > > >>     ? PrepareSplitForm :
> > > >>   is('advert')
> > > >>     ? SetUpAdvertPopup :
> > > >>   function(){} //nothing
> > > >>  );
>
> > > >> })());
>
> > > > That is, indeed, amusing. And one for my toy chest. Thanks!
>
> > > > Who knew, back in '96, that javascript was going to turn out to be so 
> > > > much fun?

Reply via email to