Thanks guys.

It looks like Brians first fragment addresses the problem I have.


On Apr 11, 2:04 pm, brian <bally.z...@gmail.com> wrote:
> The problem is that you've got a handler inside of a handler. You want
> either of these:
>
> $('.thumbnail').live("click", function(){
>         alert( $(this).attr('id') );
>
> });
>
> $('.thumbnail').click(function() {
>         alert( $(this).attr('id') );
>
> });
>
> Whether you use $('.thumbnail') or $("div[id^='thumbnail']") though
> depends on your markup.
>
> On Fri, Apr 10, 2009 at 10:00 PM, thought <thou...@orcon.net.nz> wrote:
>
> > So then this behaviour is working because I'm using a live handler?
>
> > In this case I am indeed using a live handler because elements of
> > the thumbnail class don't exist when the document is initially
> > created,
> > but are conditionally added at a later point.
>
> > I'm reasonably sure that this is an appropriate use for a live
> > handler.
>
> > But didn't expect such usage to have the consequences that I am
> > seeing.
>
> > I'm obviously taking a wrong approach here, based on limited
> > knowledge.
> > Can you suggest another approach ?
>
> > I'm looking at the docs for livequery at the moment.
> >http://docs.jquery.com/Plugins/livequery
> > Perhaps I should use that instead ?
>
> > On Apr 11, 1:44 pm, jay <jay.ab...@gmail.com> wrote:
> >> A live handler is different from a normal handler, and I'm not sure
> >> why you're putting a normal handler inside of a live handler.  A live
> >> handler works by looking at the target of whatever is clicked and
> >> comparing it to the selector, in this case, the thumbnail class.  I
> >> personally prefer to use live handlers for content that is added and
> >> removed dynamically since it is easier to manage.
>
> >> On Apr 10, 9:30 pm, thought <thou...@orcon.net.nz> wrote:
>
> >> > Thanks for the swift replies.
>
> >> > I've got a lot to learn about javascript, and at this point, adapting
> >> > charlies code, I get a strange effect that I didn't anticipate, and
> >> > don't understand.
>
> >> >  $('.thumbnail').live("click", function(){
>
> >> >         $("div[id^='thumbnail']").click(function() {
> >> >                 alert( $(this).attr('id') );
>
> >> > });
>
> >> > For the first time I click on a div, I get nothing. No alert.
> >> > For the second time I click a div, the alert pops up a couple of
> >> > times.
> >> > For the third time, the div pops up multiple times - displaying the
> >> > id, and then displaying the name of the class.
>
> >> > I'm guessing that I'm encountering something about js that I don't
> >> > understand.
> >> > If someone were to give me a pointer that explains this behaviour, and
> >> > how to change it I'd be grateful.
>
> >> > Thanks.

Reply via email to