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