Bien, tengo el siguiente código que se muestra a continuación para crear un cuadro de diálogo con un div dentro de una página en particular:

    $('#modal').dialog({
    autoOpen: false,
    width: 600,
    height: 450,
    modal: true,
    resizable: false,
    draggable: false,
    title: 'Enter Data',
    close: function() { 
        $("#modal .entry_date").datepicker('hide');
    } 
 });

 $('.modal').click(function() {
    $('#modal').dialog('open');
 });

Todo está funcionando bien. Sin embargo, ahora lo que quiero hacer es también ser capaz de abrir un enlace en una ventana de diálogo. Por ejemplo el uso de
algo a lo largo de las líneas del código de abajo:

<a href="/path/to/file.html" class="modal">Open Me!!</a>

He hecho esto antes por escribir la ruta de acceso como en el ejemplo de código siguiente:

$('#modal').load('/path/to/file.html').dialog('open');

En este caso, sin embargo, no podemos especificar la ruta de acceso en el javascript, ya que habrá varios elementos procedentes de la base de datos.

En este momento estoy luchando para entender cómo conseguir que esto funcione. También estoy convencido de que la respuesta es muy obvia, y yo soy el mero establecimiento de mí mismo para ser humillado por la inteligente popular aquí en StackOverflow.

He rayado mi cabeza el tiempo suficiente de esta tarde, así que mi ego ha sido quitado, y espero que alguien me apunte en la dirección correcta sobre cómo este código correctamente.

  • Además la página tiene que saber cuál es la ruta de acceso es de alguna manera, ¿verdad? ¿Cómo funciona la página de obtener esa información? Cuando usted tiene que responder, entonces, su enfoque de la utilización de «carga» antes de abrir el cuadro de diálogo está bastante cerca de lo que usted necesita.
InformationsquelleAutor Phil | 2010-03-22

3 Comentarios

  1. 6

    Usted puede simplemente tomar el atributo href y de carga que

    $('.modal').click(function(e) {
        e.preventDefault();
        $('#modal').load(this.href).dialog('open');
    });
    • Que hace el truco. Yo sabía que sería capaz de conseguir el href de alguna forma, pero todo lo que he intentado abrir el enlace sin importar como lo estaba impidiendo que el navegador de abrir el enlace primero! Muchas, muchas gracias!!!
  2. 1

    En este cuadro de diálogo código de tamaño y el título es declarar en el enlace

    <script type="text/javascript">
    function tb_parseQuery(query) {
    var Params = {};
    if (!query) { return Params; }//return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
    var KeyVal = Pairs[i].split('=');
    if (!KeyVal || KeyVal.length != 2) { continue; }
    var key = unescape(KeyVal[0]);
    var val = unescape(KeyVal[1]);
    val = val.replace(/\+/g, ' ');
    Params[key] = val;
    }
    return Params;
    }
    $(document).ready(function () {
    $('a.uimodal').bind('click', function () {
    var $this = $(this);
    var url = $this.attr("href");
    var queryString = url.replace(/^[^\?]+\??/, '');
    var params = tb_parseQuery(queryString);
    TB_WIDTH = (params['width'] * 1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
    TB_HEIGHT = (params['height'] * 1) + 40 || $(document).height(); //defaults to 440 if no paramaters were added to URL
    TB_Title = (params['title']);
    $('<div>').dialog({
    modal: true,
    open: function () {
    $(this).load(url);
    },
    height: TB_HEIGHT,
    width: TB_WIDTH,
    title: TB_Title
    });
    return false;
    });
    });
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <a class="uimodal" href="Dialog.aspx?height=350&width=700&title=تست"> click</a>
    </div>
    </form>
    </body>
    </html>
  3. 0

    Phil, necesita agarrar el href atributo:

    var link = $('#modal').attr('href');
    $('#modal').load(href).dialog('open');
    • Se le olvidó decir que usted necesita para desactivar la etiqueta de anclaje desde el envío de la solicitud para el servidor. Que se hace por detener la propagación en el navegador por preventDefault o return false;

Dejar respuesta

Please enter your comment!
Please enter your name here