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">&nbsp;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
-~----------~----~----~----~------~----~------~--~---

Reply via email to