I think you need to set the context for the function to that of the
link using the JavaScript call function... like:

function DoSomething( ctx ){
        alert( ctx.text );
}

var linky = $('a');
var onclick = $('a').attr('onclick');
onclick.call(linky[0]); // Alerts 'asd'


BTW: the linky[0] gets the actual DOM object, rather than the jQUery
wrapper.


On Sep 16, 3:15 am, sirrocco _ <xavier...@gmail.com> wrote:
> Damn ... I somehow thought this would be easy to achive .
>
> The whole idea was to not change existing code ....
>
> Still .. if anyone has any more ideas :). Somehow it seems that this should
> be doable.
>
> On Tue, Sep 15, 2009 at 6:03 PM, MiKiTiE <mikiji...@googlemail.com> wrote:
>
> > Ok, I've done some tests and here is my suggestion.
>
> > First of all, should just ask - I assume you are calling it after the
> > element? Probably is obvious, but thought I'd check.
>
> > Ok, here's the deal: "onclick" is not really an attribute but a mouse
> > event. Therefore jQuery will take the contents as a function and write
> > it out as an event. The only alternative is to insert your "DoSomething
> > (this);" into a standard attribute like "title" or "alt" and then take
> > it from there. This way you should be able to insert it exactly as its
> > written and not have it converted into an event.
>
> > Hope this will help?
>
> > On Sep 15, 2:31 pm, sirrocco <xavier...@gmail.com> wrote:
> > > >Perhaps then you can extract it as text like I mentioned in my first
>
> > > post, then store it in a variable?
>
> > > How do I extract it like text ? Calling the .text() method, as
> > > expected doesn't return what I need - DoSomething(this);
>
> > > On Sep 15, 3:30 pm,MiKiTiE<mikiji...@googlemail.com> wrote:
>
> > > > Perhaps then you can extract it as text like I mentioned in my first
> > > > post, then store it in a variable?
>
> > > > As I am not sure what your function does or why it needs to be applied
> > > > this way, I can't solve the problem exactly - but why not just use an
> > > > event instead of an onclick in the element? That is what jQuery is
> > > > there for :-)
>
> > > > On Sep 15, 9:50 am, sirrocco <xavier...@gmail.com> wrote:
>
> > > > > Well .. that's the problem - i tried it like that and it didn't work.
>
> > > > > When setting the attribute back on the link, the this in DoSomething
> > > > > (this); is not the link, but the window.
>
> > > > > On Sep 15, 11:41 am,MiKiTiE<mikiji...@googlemail.com> wrote:
>
> > > > > > Sorry I should have written
>
> > > > > > $('a').attr('onclick',onclick);
>
> > > > > > (setting the attribute value not the inner text!)
>
> > > > > > On Sep 15, 9:09 am, sirrocco <xavier...@gmail.com> wrote:
>
> > > > > > > Let's say you have a :
>
> > > > > > > <a href="#" onclick='DoSomething(this);'>asd</a>
>
> > > > > > > I want to get the onclick text in a variable - something like
>
> > > > > > > var onclick = $('a').attr('onclick');
>
> > > > > > > The problem is that the onclick variable now is a function and if
> > I
> > > > > > > try to execute , this   wil be the document instead of the link .
>
> > > > > > > How can I get only the text, so I can later reattach it to the
> > link ?
>
>

Reply via email to