I've thought of this, as well. I also wanted to add a hook to allow:

$(...).click(".toggle()")

However, I'm currently leaning away from it (embedding code in strings
is messy) in favor of another solution that I'm working on:

$(...).onclick().toggle().end();

Removing the need for anonymous functions entirely.

--John

On 8/17/07, Matt Kruse <[EMAIL PROTECTED]> wrote:
>
> Assigning event functions like click() require an anonymous function
> for what is often a very small snippet of code. These anonymous
> functions are confusing to inexperienced javascript coders and make
> the code less readable, IMO.
>
> I think it would be great to be able to pass a string to these
> functions and have it internally turned into a function.
>
> For example, instead of this:
> $('#test').click(function() { alert('test'); });
>
> I want to do this:
> $('#test').click("alert('test');");
>
> This simple code change seems to do the job:
> // Handle event binding
> jQuery.fn[o] = function(f){
>         return f ? this.bind(o, ((typeof f=="string")?Function(f):f)) :
> this.trigger(o);
> };
>
> Is it possible to change jQuery to accept a string in addition to a
> function reference where possible? Although you would lose the
> potential benefit of the closure by passing a string, you could always
> pass the function ref instead if you needed to.
>
> Matt Kruse
>
>

Reply via email to