2010-11-11 17 views
6

Estoy abriendo un par de cuadros de diálogo jQuery en mi página y que estaba usando:

$("#dialog2").parent().appendTo($("form:first")); //This was working, no problem. 

me di cuenta cuando me presenté de nuevo para dialog3 que se haya detenido la línea de trabajar en diálogo 2. ¿Cómo puede ser utilizado para diferentes diálogos?

$("#dialog2").dialog({ 
    bgiframe: false, 
    autoOpen: false, 
    height: 410, 
    width: 800, 
    modal: true, 
    draggable: true, 
    resizable: true 
}); 

$("#dialog2").parent().appendTo($("form:first")); //doesn't work now 

$("#dialog3").dialog({ 
    bgiframe: false, 
    autoOpen: false, 
    height: 410, 
    width: 600, 
    modal: true, 
    draggable: true, 
    resizable: true 
}); 

$("#dialog3").parent().appendTo($("form:first")); 

HTML:

<div id="dialog3" title="Attachments"> 
    <p id="P1"> 
     <asp:Button ID="btnAttach" runat="server" Text="Attach files" class="float-left ui-button"/></p> 
    <fieldset> 

    </fieldset> 
</div> 


<div id="dialog2" title="Notes"> 
    <asp:Image ID="Image1" runat="server" ImageUrl="~/images/icons/user_comment.png" /> 
    <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="Larger" Text="Notes"></asp:Label> 
    <br /> 
    &nbsp; 
    <div style="overflow: auto; height: 310px; width: 780px;"> 
     <fieldset> 
      <br /> 
      <asp:TextBox ID="txtNote" runat="server" CssClass="notetext" Width="740px" Rows="6" 
       TextMode="MultiLine" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" /> 
      <br /> 
      &nbsp; 
      <div style="width: 743px"> 
       <asp:Button ID="btnNoteSave" runat="server" Text="Save" class="float-right ui-button" /> 
      </div> 
     </fieldset> 
    </div> 
+0

muestran algo de HTML también PLZ. – zzzzBov

+0

No puedo reproducir esto - mi versión simplificada funciona bien. (Básicamente eliminé las declaraciones de control de ASP.NET y fui vanilla html.) Cuando dices "ha impedido que esa línea trabaje en el diálogo 2", ¿cuál es el síntoma exacto? ¿Recibes un error en Firebug/Fiddler? –

+0

Lo que está sucediendo es: Aparecen los dos cuadros de diálogo de jquery. Si acabo de poner $ ("# dialog2"). Parent(). AppendTo ($ ("form: first")); luego, el botón en dialog2 hará clic y ejecutará el método detrás de él, genial. Si agrego $ ("# dialog3"). Parent(). AppendTo ($ ("form: first")); luego, el botón en el diálogo 3 hará clic y se ejecutará a través del método que se encuentra detrás de él, pero luego cuando active el cuadro de diálogo 2, su botón no se ejecutará a través del método que está detrás de él. He intentado poner: $ ("# dialog3"). Parent(). AppendTo ($ ("form: second")); ... como una suposición pero eso tampoco funciona! – thegunner

Respuesta

7

mejor de uno

$('#dialog2').dialog({ 
     open:function(){{ 
     $(this).parent().appendTo($("form:first")); 
     }} 
}); 

$('#dialog3').dialog({ 
     open:function(){{ 
     $(this).parent().appendTo($("form:first")); 
    }} 
}); 
1

Ok, ahora parecen tener dos botones de trabajo es decir, pasar por el código detrás de los dos botones. Puse el "appendTo" llama en las funciones que se pueden abrir los diálogos ...

 $('#edit-notes').click(function() { 
      $('#dialog2').dialog('open'); 
      $("#dialog2").parent().appendTo($("form:first")) 
      return false; 
     }); 

     $('#attachments').click(function() { 
      $('#dialog3').dialog('open'); 
      $("#dialog3").parent().appendTo($("form:first")) 
      return false; 
     });