There might be some info in this tutorial that could help you:
http://www.learningjquery.com/2006/09/sacrificial-lambda

On Apr 10, 5:18 pm, Olaf Gleba <[EMAIL PROTECTED]> wrote:
> Hi,
>
> the last two days i argue about how to handle (re)binding event
> handlers in a most elegant and un-redundant way when i work with
> asynchron injected files. I worked with prototype/Behaviour for the
> last couple of month, so i need a good approach to refactor this
> within jquery.
>
> So far a defined a function that is  used as a callback on .load()
> functions which load xhr injected files. Within this function
> (rebindEventHandlers) i define every function that is in use within
> the injected files (s. appended Example below).
>
> First problem is: I don't want to traverse everytime through all
> functions defined within this rebindEventHandlers callback, because
> there is possibly no need for all(!) functions to rebind in some
> case. Of course this could be avoided by defining more callback
> functions that each only contains the needed functions to rebind and
> use these func. as separat callbacks. But i think thats ugly...
>
> Second problem is: Sometimes (for example the choosen .toogle()
> functionality, s. below the example code) i'd like to avoid to define
> 2 functions for overall 1 functionality. Thats ugly too ;)
>
> How do you handle this task? I appreciate any comments. Thx in advance.
>
> greets
> Olaf
>
> EXAMPLE (structure):
>
> $(function(){
>
>         var rebindEventHandlers = function() {
>
>                 // example func to toggle some xhr loaded content
>                 $("a.toggleBelowLoadedContent").toggle(function(){
>                         var el = $(this).parent();
>                         $(el).next().fadeOut("fast");
>                         $(this).text('Show');
>                         return false;
>                 }, function() {
>                         var el = $(this).parent();
>                         $(el).next().fadeIn("fast");
>                         $(this).text('Hide');
>                 });
>          };
>         // EOF rebindEventHandlers
>
>         // func outside the defined callback func
>         // loads the xhr file which contains the above toogle functionality
>         // present the rebindEventHandlers as the callback
>         $("a#client").click(function(){
>                 $("div#account").load("/clients/dashboard/client/",
> rebindEventHandlers);
>         });
>
>         // example func to toggle some content on normal loaded sites
>         // See "Second problem"...
>         $("a.toggleBelow").toggle(function(){
>                 var el = $(this).parent();
>                 $(el).next().fadeOut("fast");
>                 $(this).text('Show');
>                 return false;
>         }, function() {
>                 var el = $(this).parent();
>                 $(el).next().fadeIn("fast");
>                 $(this).text('Hide');
>         });
>
> };
>
> // EOF document.ready()

Reply via email to