Tried again, but changed the code so the new product will be prepended
to the fieldset#step1 -- so, it's always at the top of the page.

$("#add").click(function() {
                        
$("div.product-template:first").clone(true).prependTo("#step1");
                });

Events get copied but the cloning happens only on second click on #add
button and third click eliminates the recently added .product-template
Help please???

Elle







On May 3, 8:23 am, elle <[EMAIL PROTECTED]> wrote:
> Hi KArl,
>
> I didn't know that. Will try again.
>
> Elle
>
> On May 3, 2:43 am, Karl Swedberg <[EMAIL PROTECTED]> wrote:
>
> > Hi Elle,
>
> > When the book was published, .clone() didn't have the event-cloning
> > option. That was added in one of the 1.2.x releases. So if you're
> > using a version of jQuery after 1.1.x, you should remove the
> > cloneEvents.js script and try with .clone(true)
>
> > --Karl
> > _________________
> > Karl Swedbergwww.englishrules.comwww.learningjquery.com
>
> > On May 2, 2008, at 4:57 AM, elle wrote:
>
> > > Hi Karl, and thank you for your reply.
>
> > > This didn't really work -- unless I missed something important on the
> > > way.
> > > I was reading "Learning jQuery" and it says that .clone() doesn't copy
> > > the events related to the cloned items (which I need). It suggested to
> > > use copyEvents.js So, I have that script linked and I checked:
> > >http://www.learningjquery.com/2007/01/copy-events-from-one-element-to...
> > > but... I still don't get it to work. What is my mistake???
> > > My code now says:
> > > ...
> > > $(document).ready(function() {
> > >            $('#orderform').find('.options').hide();
> > >            $('#add').one('click', function() {
> > >                    $('.product-template').copyEventsTo('#orderform 
> > > .product-
> > > template');
> > >                    return false;
> > >          });
> > > ...
>
> > > Any ideas???
>
> > > Thanks,
> > > Elle
>
> > > On May 2, 12:44 am, Karl Swedberg <[EMAIL PROTECTED]> wrote:
> > >> Hi Elle,
>
> > >> Here are a few thoughts.
>
> > >> Your code:
>
> > >>> $("#add").click(function() {
> > >>>   $(".product-template").clone().appendTo(".product-template:last-
> > >>> child");
> > >>> });
>
> > >> - Do you have this inside a document.ready?
>
> > >> $(document).ready(function() {
> > >>    $("#add").click(function() {
> > >>        $(".product-template").clone().appendTo(".product-
> > >> template:last-
> > >> child");
> > >>    });
>
> > >> });
>
> > >> - Toclonethe events along with the DOM elements you can
> > >> do .clone(true) instead of .clone()
>
> > >> - The problem with the click not working could have to do with the
> > >> ":last-child" part. I'd change it to ":last" and also change the
> > >> insertion method from .appendTo() to .insertAfter()
>
> > >> - Probably a good idea to onlyclonethe first .product-template each
> > >> time.
>
> > >> Try something like this:
>
> > >> $(document).ready(function() {
> > >>    $("#add").click(function() {
> > >>        $("div.product-
> > >> template:first").clone(true).insertAfter("div.product-
> > >> template:last");
> > >>    });
>
> > >> });
>
> > >> Hope that points you in the right direction.
>
> > >> --Karl
> > >> _________________
> > >> Karl Swedbergwww.englishrules.comwww.learningjquery.com
>
> > >> On May 1, 2008, at 1:53 AM, Waz and Elle wrote:
>
> > >>> Hi,
>
> > >>> I'm new to jquery and went over quite a few tutorials -- some work
> > >>> great for me, with no problems at all. But I'm having trouble with
> > >>> the .clone() method.
> > >>> I am trying to build an order form, and have a button#add, which
> > >>> when
> > >>> clicked I want it to add another div.product-template (that
> > >>> includes a
> > >>> select list, options, quantity and add to cart button).
> > >>> So, my code says:
>
> > >>>http://pastie.caboo.se/189769
>
> > >>> but... when I click on the button#add, once nothing happens, second
> > >>> time it adds the .product-template but any functions I had
> > >>> attached to
> > >>> the select list don't work. third click gets rid of my
> > >>> second .product-
> > >>> template.
>
> > >>> In my document I have:
> > >>> .... snip ...
> > >>> div#orderform
> > >>>        form
> > >>>             button#add
> > >>>             fieldset#step1
> > >>>                      div.product-template
> > >>>                            .... rest of options come here
> > >>>             fieldset#step2
> > >>> .... snip ...
>
> > >>> Would anyone know how to correct this?
>
> > >>> TIA,
> > >>> Elle

Reply via email to