Hi Arnaud,

your pasted code does not work on FF3.5.3.
So I modify it this way, it should work on all browser, only test with
FF3.5 & IE6 :((
Here is your version modified:

<html>
<head>
        <script src="prototype.js" type="text/javascript"></script>
</head>
<body>
        <script type="text/javascript">
                var a_create = new Element('a', {
                        id : 'btn_create',
                        href : 'javascript:linkOnClick();'}).update
('[ Create ]');

                var l_create = new Element('label',
{id:'btn_create'}).update('[ Create ]');

                function linkOnClick() {
                        $('btn_create').replace(l_create);
                    alert("disable");
                }

                function activateLink() {
                        $('btn_create').update(a_create);
                        alert("activate");
                }
        </script>

        <label id="btn_create">[ Create ]</label>
        <input type="button" onclick="activateLink();" value="Activate
link" />
</body>
</html>

But multiple click on the button break the sentence. So it did not
work well !!

But as you request a simple version, why not doing something like
that:
<html>
<head>
        <script src="prototype.js" type="text/javascript"></script>
</head>
<body>
        <script type="text/javascript">
                function activateLink() {
                        $('btn_create').hide();
                        $('btn_create_a').show();
                    alert("enable");
                }
                function linkOnClick() {
                        $('btn_create').show();
                        $('btn_create_a').hide();
                    alert("disable");
                }
        </script>

        <label id="btn_create">[ Create ]</label>
        <label id="btn_create_a" style="display:none"><a
href="javascript:linkOnClick();">[ Create ]</a></label>
        <input type="button" onclick="activateLink();" value="Activate
link" />
</body>
</html>

It's simpler and work in all case even on multiple click on the
button.
But depending on what you want to do, there could have a lot of
possibilities to achieve to this.

btw, you use DOM0 event to trap the mouse click, have a look at:
http://prototypejs.org/api/event
to know how to use event with prototype. So you could use Event.stop
(Alex exemple), or the preventDefault property.
And you could define multiples events on the same element id using
this way.

--
david


On 15 sep, 17:02, Arnaud Feltz <arnaud.fe...@gmail.com> wrote:
> 2009/9/14 Arnaud F. <arnaud.fe...@gmail.com>
>
>
>
> > Hello,
>
> > i need to disable a link in some case.
>
> > What I do actually is something like this :
>
> > <html>
> > <head>
> >        <script src="javascript/prototype.js" type="text/javascript"></
> > script>
> > </head>
> > <body>
> >        <script type="text/javascript">
> >                var a_create = new Element('a', {
> >                        id : 'btn_create',
> >                        href : 'javascript:linkOnClick();',
> >                        innerText : '[ Create ]'});
>
> >                var l_create = new Element('label',{id:'btn_create',
> > innerText:'[ Create ]'});
>
> >                function linkOnClick() {
> >                        $('btn_create').replace(l_create);
> >                    alert("disabled");
> >                }
>
> >                function activateLink() {
> >                        $('btn_create').replace(a_create);
> >                        alert("activate");
> >                }
> >        </script>
>
> >        <label id="btn_create">[ Create ]</label>
> >        <input type="button" onclick="javascript:activateLink();"
> > value="Activate link" />
> > </body>
> > </html>
>
> > It works fine but, It's possible to do much easier ? If not, how can I
> > override only the link tag whitout modifying other Elements?
>
> > Thanks !
>
> I tried to launch this page in Chrome / Firefox, it doesn't work... It works
> only in IE...
>
> I'm the only one who tries to desactivate a link?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to