Archive for junho, 2009

jQuery UI – Accordion


30 jun

Melhorar o visual do site é sempre uma saga para nós que desenvolvemos, quem nunca teve problemas para criar um menu com efeito accordion? Muito javascript, pouca compatibilidade e muitos bugs. Mas nós estamos aqui para ajudar a facilitar sua vida e o jQuery UI também! =]

Com este simples javascript:

1
2
3
4
5
<code class=javascript>
$(function(){
            $("#accordion").accordion({ header: "h3" }); // No Header se define qual area da div é o titulo;
});
</code>

E este HTML:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<code class=html>
&lt;h2&gt;JotaQuery Accordion&lt;/h2&gt;
&lt;div id=&quot;accordion&quot; style=&quot;width:300px;&quot;&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;a href=&quot;#&quot;&gt;JotaQuery UI 1
&lt;/a&gt;
&lt;/h3&gt;
&lt;div&gt;jQuery User Interface - UI 1
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;a href=&quot;#&quot;&gt;JotaQuery UI 2
&lt;/a&gt;
&lt;/h3&gt;
&lt;div&gt;jQuery User Interface - UI 2
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;a href=&quot;#&quot;&gt;JotaQuery UI 3
&lt;/a&gt;
&lt;/h3&gt;
&lt;div&gt;jQuery User Interface - UI 3.
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</code>

Cria-se um menu com efeito accordion, simples? fácil?
Até mais.

Usando as janelas do ExtJS: Ext.Window


27 jun

É muito simples criar uma janela, entretanto é possível fazer inúmeras modificaçãos. Desde alterar a aparência, até alterar os recursos e propriedades dela.

Considere para os exemplos abaixo que em nosso arquivo HTML (ASP, PHP, ASPX, etc…) já temos os includes do ExtJS e a função onReady (ambos foram mostrados neste post, clique aqui), ok?

Bom, vamos criar uma janela com minimo possível de propriedades e vejamos o resultado:

1
2
3
4
5
6
7
8
<code class="javascript">
var minha_janela = new Ext.Window({
    width:300, //Largura
    height:100 //Altura
});
minha_janela.show();
</code>

window-1

Note que após atribuirmos a Window à varável  minha_janela precisamos chamar o metódo show() para que a janela apareça.

Neste momento a janela já possui alguns recursos como: o botão fechar, arrastar a janela e redimencionar seu tamanho.

Podemos inserir muitas outras propriedades na janela (uma lista completa pode ser obtida na documentação do Ext JS) como título, botões, itens e etc…

Vamos adicionar dois botões em nossa janela: “Ok” e “Cancelar”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<code class="javascript">
var minha_janela = new Ext.Window({
    width:300, //Largura
    height:100, //Altura
    buttons:[{
        text:'Ok'
    },{
        text:'Cancelar',
        handler:function(){
            minha_janela.close();
        }
    }]
});
minha_janela.show();
</code>

window-2

O texto do botão é adicionado com a propriedade text, caso precise colocar palavras com acentuação no seu botão e ao colocar o caractere acentuado não apareça ou zoe basta utilizar nosso conversor de caracteres para unicode e html, não esqueça de adicionar a página nos seus favoritos para acessar futuramente.

No botão “Cancelar” adicionei uma função para fechar a jenala, usando o metódo close().

No exemplo abaixo vamos adicionar um terceiro botão com a função de mudar o título da jenela. Além disso vamos travar a tela quando janela aparecer, para que o usuário não consiga mexer em nada além da janela atual (modal), vamos travar também a possibilidade de redimensionar a janela (resizable) e travar o recurso de mover a janela (draggable).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<code class="javascript">
var minha_janela = new Ext.Window({
    title:'Minha Janela', //Titulo
    modal:true, //Bloquear a página
    resizable:false, //Redimencionar Janela
    draggable:false, //Mover Janela
    width:300, //Largura
    height:100, //Altura
    buttons:[{
        text:'Mudar T\u00edtulo',
        handler:function(){
            minha_janela.setTitle('Novo T\u00edtulo alterado ao clicar');
        }
    },{
        text:'Ok'
    },{
        text:'Cancelar',
        handler:function(){
            minha_janela.close();
        }
    }]
});
minha_janela.show();
</code>

window-3

O principal que está faltando em nossa janela é o conteúdo que pode ser diversas coisas… pode ser um formulálio ExtJS adicionado pela propriedade items em nossa janela. O conteúdo pode ser um div em nosso HTML, para isso dê um ID para a div e informe esse ID para nossa janela usando a propriedade contentE. Uma terceira terceira maneira de adicionar um conteúdo é pela propriedade html, que obviamente basta inserir o HTML nesta propriedade. A última maneira que citarei aqui é via Ajax, usando a propriedade autoLoad que é capaz de trazer um outro arquivo dentro de nossa window.

Básicamente você precisa apenas informar qual é a url do arquivo que será carregado, porém você também pode passar parâmetros (params) e outras propriedades que podem ser obtidas na documentação clicando aqui.

No script abaixo você pode ver como ficaria nosso autoLoad:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<code class="javascript">
var minha_janela = new Ext.Window({
    title:'Minha Janela', //Titulo
    modal:true, //Bloquear a página
    resizable:false, //Redimencionar Janela
    draggable:false, //Mover Janela
    width:300, //Largura
    height:100, //Altura
    autoLoad:{url:'conteudo.html'},//Conteúdo carregado via Ajax
    buttons:[{
        text:'Mudar T\u00edtulo',
        handler:function(){
            minha_janela.setTitle('Novo T\u00edtulo alterado ao clicar');
        }
    },{
        text:'Ok'
    },{
        text:'Cancelar',
        handler:function(){
            minha_janela.close();
        }
    }]
});
minha_janela.show();
</code>

Como sempre, se tiver alguma dúvida do assunto acima basta comentar abaixo.

Vote no JotaQuery!


26 jun

Estamos fazendo uma pesquisa para saber o quanto estamos ajudando.

Vote e colabore com nossa pesquisa.

twtpoll

JotaQuery tem ajudado você a solucionar seus problemas do dia-a-dia?

Sim, e muito!
Sim, tem ajudado.
Não, pode melhorar.



JotaQuery

O mundo do Javascript