1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

JQuery - Abrir dialog após abrir uma página (nem sempre é para a dialog abrir)

Boa tarde pessoal

Estou criando uma página que contém uma dialog, só que a tela terá uma tabela de consulta e a dita da dialog. Só que quando a tela for acessada pela função de consulta não é para a dialog abrir e quando for através da opção da de criação é para a mesma abrir. A minha idéia inicial foi está

$( "#botao-novo-usuario" ).button()
.click(function() {    $( "#usuario-form" ).dialog( "open" );
    window.location="colUsuario";
    $( "#usuario-form" ).dialog( "open" );
});

Só que desta forma a página tenta abrir a dialog antes da página carregar. Outra idéia que tive foi tentar chamar via ajax, desta forma:

$( "#botao-novo-usuario" ).button()
.click(function() {    $( "#usuario-form" ).dialog( "open" );


    $.ajax({
        type:"POST",
        url:"colUsuario",

        success:function(data){
            $("#tela-principal").html(data);
            $( "#usuario-form" ).dialog( "open" );

            }
    });

});

Só que desta forma, embora abra a dialog, o menu (um accordion - também do JQuery) não funciona corretamente (não abre todas as opções e o que abre fecha automaticamente).

Aqui vai a minha dialog


$( "#usuario-form" ).dialog({
    autoOpen: false,
    height: 400,
    width: 500,
    modal: true,
    buttons: {
        "Salvar": function() {
            $("#novo-usuario-form").submit();
        },
        Cancelar: function() {
            $( this ).dialog( "close" );
        }
    }

});

E aqui o meu accoridion - aquele que está dando problema quando faço alguma chamada via ajax:

$("#menu-principal").accordion({
    header: "h3",          
    autoheight: true,
    heightStyle: "content",
    active: false,
    alwaysOpen: false,
    fillspace: false,
    collapsible: true
});

Agradeço se alguém puder me ajudar a abrir a dialog após carregar a página ou arrumar o accordion que dá conflito.

  • Voce não consegue enviar um parâmetro que definira se o dialog abrirá ou não ?

    diegohsi   13 de ago de 2013
  • Sou iniciante em desenvolvimento web, então neste momento mesmo estou pesquisando se tem jeito de fazer isto. Vou tentar criar um campo hidden e ver se por ele não consigo abrir a dialog. Já descobri que não dá certo tentar criar uma variável global, ela sempre é reiniciada quando a página é carregada.

    Jubarius   13 de ago de 2013
  • Consegui resolver. O caminho era passar uma parâmetro. Foi só enviar, no meu caso via GET, um parametro, criar uma função no javascript e, por fim, fazer a ligação através do método onload no body do html. Em outras palavras: * Passar via get

    window.location="colUsuario?open=false";
    • Fazer a ligação no html, pela função onload
      <body onload="abreDialog(${param.open })">
    • Criar uma função javascript para abrir ou não a dialog
      <body onload="abreDialog(${param.open })">

    Resumindo: Um grande exemplo de POG

    Jubarius   13 de ago de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags jquery javascript ou faça a sua própria pergunta.