views:

51

answers:

1

When I add something of the class "myClass" I want to call a function on this element.

It would be something in the lines of:

jQuery(".error_message").live("load",function(){
  alert("test"+this);
});

... except this doesn't exist.

What's the best way of doing this?

+3  A: 

The short, direct answer to your question would be "no can do." But from your comment a few minutes ago, I see that you want to add elements in different ways and have one unified method of handling these newly added items. May I suggest another approach? Trigger custom events.

The way it would work is like this: everywhere you load the error-message element, you add one line when it's done:

 $('.error_message').trigger('load');

Now your .live('load'...) thing will work.

Barnabas Kendall
That's a very interesting answer. I'm not really sure if that's what I'm looking for... it looks a bit hacky. But I don't know jquery enought to tell hacky from amazing. So, would you say this is a good practice?
marcgg
I'll vouch for it - there's also a good article on event pooling that talks about this on a document level: http://www.michaelhamrah.com/blog/index.php/2008/12/event-pooling-with-jquery-using-bind-and-trigger-managing-complex-javascript/
Mike Robinson
any idea how .live() does what it does?
Kip