[jQuery] Re: Get the onclick method of an element
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 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 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 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 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 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 wrote: > > > > > > > > Let's say you have a : > > > > > > > > asd > > > > > > > > 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 ? > > >
[jQuery] Re: Get the onclick method of an element
>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 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 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 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 wrote: > > > > > Let's say you have a : > > > > > asd > > > > > 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 ? > >
[jQuery] Re: Get the onclick method of an element
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 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 wrote: > > > Let's say you have a : > > > asd > > > 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 ? > >
[jQuery] Get the onclick method of an element
Let's say you have a : asd 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 ?
[jQuery] Re: Intercept javascript event
AOP is not really the answere here. As you can see there is a callback function - so the user presses some other buttons and then I have to replay the initial button's onclick functions. On Sep 15, 3:12 am, Steven Black wrote: > One idea: have a look at the Aspect Oriented Programming plugin. > > Seehttp://plugins.jquery.com/project/AOP > andhttp://code.google.com/p/jquery-aop/ > > If this isn't exactly what you are looking for, then therin is code to > pre- and post-hook existing events. > > I hope this helps. > > **--** Steve > > On Sep 14, 1:05 pm, sirrocco wrote: > > > Here's what I'm trying to do : > > > I have a page with some links. Most links have a function attached to > > them on the onclick event. > > > Now, I want to set a css class to some links and then whenever one of > > the links is clicked I want to execute a certain function - after it > > returns , I want the link to execute the onclick functions that were > > attached to it. > > > Is there a way to do what I want ? > > > Here's an attempt at an example : > > > $("#link").click(function1); > > $("#link").click(function2); > > $("#link").click(function(){ > > firstFunctionToBeCalled(function (){ > > // ok, we're inside the callback - now execute function1 and > > function2 > > }); > > > }); // somehow this needs to be the first one that is called > > > function firstFunctionToBeCalled(callback){ > > // here some user input is expected so function1 and function2 > > must not get called > > callback(); > > > } > > > All this is because I'm asked to put some confirmation boxes (using > > boxy) for a lot of buttons and I really don't want to be going through > > every button.
[jQuery] Intercept javascript event
Here's what I'm trying to do : I have a page with some links. Most links have a function attached to them on the onclick event. Now, I want to set a css class to some links and then whenever one of the links is clicked I want to execute a certain function - after it returns , I want the link to execute the onclick functions that were attached to it. Is there a way to do what I want ? Here's an attempt at an example : $("#link").click(function1); $("#link").click(function2); $("#link").click(function(){ firstFunctionToBeCalled(function (){ // ok, we're inside the callback - now execute function1 and function2 }); }); // somehow this needs to be the first one that is called function firstFunctionToBeCalled(callback){ // here some user input is expected so function1 and function2 must not get called callback(); } All this is because I'm asked to put some confirmation boxes (using boxy) for a lot of buttons and I really don't want to be going through every button.