Add return false to the end of your link's click handler, so it doesn't navigate to the href="#" - Richard
On Fri, Jul 31, 2009 at 8:52 AM, MauPatt <[email protected]> wrote: > > I'm using the JQuery UI Dialog which upon opening seems to be working > fine. Inside this dialog I have a form, inside which are form elements > with "Add one" functionality, to allow users to enter multiple of a > given field. This is also working fine - except that every time I > click on "Add one" the page repositions to the top of the page, > leaving the dialog where it was lower on the screen, causing a bad > shift and sometimes causing the dialog to go "below the fold". Is > there any way to do this without repositioning the page in the > browser? > > Here is the html > > <input type="image" src="/static/images/addedit.gif" id="bttn-titles" > value="Add or Edit Titles" class="editbutton"/> > > <div id="titles-dialog"> > <h3>Titles</h3> > <form method="post"> > <div id="formaltitles" class="eff-repeating"> > <div id="formaltitle" class="eff-prototype" style="display: > none; > border: 1px solid #CCCCCC; padding: 8px; margin-bottom: 8px; > background: #EEEEEE"> > <label for="input">Select a title:</label> > <select name="formaltitle_sel" id="formaltitle_sel"> > <option selected="selected">-- Select One --</option> > </select> > <br/> > <a href="#" name="Formal Title" > class="eff-remove">Remove</a> > </div> > <p><a href="#" class="eff-add"> Add another > title</a><br/></p> > </div> > </div> > > > > > and the script: > > > function effAdd() > { > var ret = $(this).map(function () { > var lastcounter; > var myrepeating = $(this).parents(".eff-repeating")[0]; > var myproto = $(myrepeating).children(".eff-prototype")[0]; > // clone and add appropriate classes > var myclone = $(myproto).clone(true).addClass('eff- > clone').removeClass('eff-prototype').css('display', 'block'); > // any clones? > var clones = $(myrepeating).children('.eff-clone'); > > // counter to append to id's and names: > // either add one to the counter in the last clone or > // use 1 if there are no clones. > if (clones.length == 0) { > lastcounter = 1; > // find all id's and name's and add the counter to them > renumber(myclone, lastcounter); > myclone.insertAfter(myproto); > //$(myproto).parent().append(myclone); > clonefun = $('#' + $(myproto).attr('id').replace(/(_\d)+ > $/, "")).data('onClone'); > if (clonefun) { > clonefun(myclone); > }; > } > else { > var lastind = $(clones[clones.length - 1]).attr('id').match > ('.+_([0-9])')[1]; > > if (lastind != null) { > lastcounter = parseInt(lastind) + 1; > // find all id's and name's and add the counter to them > renumber(myclone, lastcounter); > myclone.insertAfter(clones[clones.length - 1]); > //$(clones[clones.length - 1]).append(myclone); > clonefun = $('#' + $(myproto).attr('id').replace(/(_\d)+ > $/, "")).data('onClone'); > if (clonefun) { > clonefun(myclone); > }; > }; > }; > return(myclone[0]); > }); > return(ret); > }; > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery UI" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jquery-ui?hl=en -~----------~----~----~----~------~----~------~--~---
