$('.toggle').[before|prepend]($('<a href="#" class="toggler">Collapse</a>').click(function() { alert('toggle'); }));
.prepend and .append don't return the a created element. The general idea of .append, etc... is "Insert this stuff inside of me, then return me so that more stuff can be done on me." If you want to attach things to the node you created, you should either nest a simple $(html).dosomething() which will return then be inserted, or use something like .appendTo, .prependTo, etc... which work in the opposite direction and inject the current object relative to something else, instead of injecting something relative to the current object. Basically the one thing to understand is when thinking of any dom manipulation (append, prepend, appendTo, before, etc...) the chainable object returned is the same context you started with, NOT what you inserted. It was a little to get used to migrating from my own framework which worked like pf(...).append(nodeName, attrs).doSomethingOnNewNode(); but once I got used to it I found that nesting rather than chaining with the new object was actually a lot more powerful. ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://nadir-seen-fire.com] -Nadir-Point & Wiki-Tools (http://nadir-point.com) (http://wiki-tools.com) -MonkeyScript (http://monkeyscript.org) -Animepedia (http://anime.wikia.com) -Narutopedia (http://naruto.wikia.com) -Soul Eater Wiki (http://souleater.wikia.com) mwalsh wrote: > Hi, > > I'm puzzled why this script works: > > $('.toggle').prepend('<a href="#" class="toggler">Collapse</a>').click > (function() { > alert('toggle'); > }); > > But this one doesn't: > > $('.toggle').before('<a href="#" class="toggler">Collapse</a>').click > (function() { > alert('toggle'); > }); > > I don't understand why! > > Thanks for looking. > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---