But that is not the problem. It is 100% ok to put a click event on an anchor
and expect it not to pass on the request, if you return false.

For the sake of the argument, I changed the anchor to a div and I still get
no exception and it still does nothing.

If I do this:

spinDown.click(function() {
            alert('down');
            return false;
            //return spin(-1);
        });

a click renders no alert.
so as the plugin does all the rest it is asked, it seems it does not attach
the click event in a way I would want it to.

any ideas?

2009/7/8 MorningZ <morni...@gmail.com>

>
> I see this (stopping links in their tracks) a lot and it's puzzling,
> so i think:
>
> *if you do not want an <a> to actually follow a link, then don't use
> an <a>, use a <span> or something instead and use CSS to make it look
> like a link to the user*
>
> That will 100% solve all issues with a hyperlink acting like, well, a
> hyperlink  :-)
>
> Problem with:
> return false;
> or
> e.preventDefault()
>
> is that if a JavaScript error happened before that, then either of
> those lines will never execute to prevent the browser from going
> wherever
>
>
> On Jul 8, 11:09 am, BaBna <thomas.na...@gmail.com> wrote:
> > I don't really see where your link is, but if you had .click(function
> > (e){e.preventDefault();} to your link, that should disable it.
> >
> > On Jul 8, 3:54 pm, Jan Limpens <jan.limp...@gmail.com> wrote:
> >
> > > hi there!
> >
> > > this plugin extends an input text with 2 links that increase or
> decrease
> > > it's value by 1.
> > > unfortunately, due to my dumbness it is not working as I would expect.
> >
> > > When one clicks at one of the links, the link works normally as a link
> would
> > > (making the request to "").
> >
> > > Anybody could tell me what I am doing wrong - I am definitely suffering
> from
> > > jquery blindness here...
> >
> > > (function($) {
> > >     jQuery.fn.spinner = function() {
> > >         var input = $(this);
> > >         var makeButton = function(cssClass, text) {
> > >             return $('<a href="" class="' + cssClass + '"><span>' +
> text +
> > > '</span></a>');
> > >         };
> > >         var spin = function(value) {
> > >             var val = parseInt(input.val());
> > >             var newValue = isNaN(val)
> > >                 ? 0
> > >                 : val;
> > >             if (newValue + value > -1) {
> > >                 newValue += value;
> > >             }
> > >             input.val(newValue);
> > >             return false;
> > >         };
> > >         input.wrap('<div class="spinner"/>');
> > >         var spinDown = makeButton('spinDown', '-');
> > >         input.before(spinDown);
> > >         spinDown.click(function() {
> > >             return spin(-1);
> > >         });
> > >         var spinUp = makeButton('spinUp', '+');
> > >         input.after(spinUp);
> > >         spinUp.click(function() {
> > >             return spin(1);
> > >         });
> > >     };
> >
> > > })(jQuery);
> >
> > > <input type="text" id="spinMe" name="xxx" value="0"/>
> >
> > > $('#spinMe').spinner();
> >
> > > --
> > > Jan
>



-- 
Jan

Reply via email to