Ir para conteúdo
Fórum Script Brasil
  • 0

PROBLEMA com CLIQUE


BananaRJ

Pergunta

Estou implementando um menu fancy em java + css que peguei na internet e ele já esta quase 100%. O unico problema é que ao clicar nos itens do menu que deveriam abrir links em um target ele simplesmente não faz nada.

Acho que o problema esta no javascript no event click.

Desejo que o link seja aberto ao clicar. Abaixo segue o HTML e o JAVA.

>HTML:

<div id="fancymenu" align="center">
        <ul>
          <li class="current" id="menu_home"><a href="home.htm" target="bottomFrame">Home</a></li>
          <li id="menu_servicos"><a href="servicos.htm" target="bottomFrame">Servicos</a></li>
          <li id="menu_clientes"><a href="clientes.htm" target="bottomFrame">Clientes</a></li>
          <li id="menu_contato"><a href="contato.htm" target="bottomFrame">Contato</a></li>
          <li class="background">
          <div class="left">&nbsp;</div>
          </li>
        </ul>
      </div>
>java script:
var SlideList = new Class({ 
initialize: function(menu, options) { 
this.setOptions(this.getOptions(), options); 
  
this.menu = $(menu), this.current = this.menu.getElement('li.current'); 
  
this.menu.getElements('li').each(function(item){ 
item.addEvent('mouseover', function(){ this.moveBg(item); }.bind(this)); 
item.addEvent('mouseout', function(){ this.moveBg(this.current); }.bind(this)); 
item.addEvent('click', function(event){ this.clickItem(event, item); }.bind(this)); 
}.bind(this)); 
  
this.back = new Element('li').addClass('background').adopt(new Element('div').addClass('left')).injectInside(this.menu); 
this.back.fx = this.back.effects(this.options); 
if(this.current) this.setCurrent(this.current); 
}, 
  
setCurrent: function(el, effect){ 
this.back.setStyles({left: (el.offsetLeft)+'px', width: (el.offsetWidth)+'px'}); 
(effect) ? this.back.effect('opacity').set(0).start(1) : this.back.setOpacity(1); 
this.current = el; 
}, 
  
getOptions: function(){ 
return { 
transition: Fx.Transitions.sineInOut, 
duration: 700, wait: false, 
onClick: Class.empty 
}; 
}, 
  
clickItem: function(event, item) { 
if(!this.current) this.setCurrent(item, true); 
this.current = item; 
this.options.onClick(new Event(event), item); 
}, 
  
moveBg: function(to) { 
if(!this.current) return; 
this.back.fx.custom({ 
left: [this.back.offsetLeft, to.offsetLeft], 
width: [this.back.offsetWidth, to.offsetWidth] 
}); 
} 
}); 
  
SlideList.implement(new Options); 

window.addEvent('domready', function() { 
new SlideList($E('ul', 'fancymenu'), {transition: Fx.Transitions.backOut, duration: 700, onClick: function(ev, item) { ev.stop(); }}); 
});

Editado por andreia_sp
Utilize tags para código, facilitam a visualização. Andreia_Sp
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Testei aqui e estao abrindo em uma nova janela... não era isso que você queria?

Qual navegador você testou?

Testei no IE 7 e no FF mais novo. Se eu clicar no item do menu com o botao direito e mandar abrir ele abre mas se eu clicar com o botao esquerdo ele não faz nada.

Acessa http://www.novomineirao.ind.br . Ao clicar nos itens do menu deveria ser aberto uma nova pagina no target=bottomFrame.

O que pode ser?

e tem a funcao axuliar.js em http://www.novomineirao.ind.br/auxiliar.js que tem as funcoes utilizadas no JAVASCRIPT

>CSS:

fancymenu {
    position: relative;
    height: 35px;
    width: 450px;
    background: url('imagens/bg2.png') no-repeat bottom;
    padding-top: 7px;
    padding-right: 0;
    padding-left: 32px;
    padding-bottom: 0;
    margin: 0 0;
    overflow: visible;
    z-index: 0;
    background-image: url(imagens/bg2.png);
} 
  
#fancymenu ul { 
padding: 0; 
margin: 0; 
} 
  
/* Don't apply padding here (offsetWidth will differ in IE) 
If you need padding add it to the child anchor */ 
#fancymenu ul li { 
float: left; 
list-style: none; 
} 
  
#fancymenu ul li a { 
text-indent: -500em; 
z-index: 10; 
display: block; 
float: left; 
height: 25px; 
position: relative; 
overflow: hidden; 
} 

#menu_home a { 
width: 80px; 
background: url('imagens/menu_home.png') no-repeat center !important; 
background: url('imagens/menu_home.gif') no-repeat center; // ie! 
} 
  
#menu_servicos a { 
width: 100px; 
background: url('imagens/menu_servicos.png') no-repeat center !important; 
background: url('imagens/menu_servicos.gif') no-repeat center; 
} 
  
#menu_clientes a { 
width: 100px; 
background: url('imagens/menu_clientes.png') no-repeat center !important; 
background: url('imagens/menu_clientes.gif') no-repeat center; 
} 
  
#menu_contato a { 
width: 100px; 
background: url('imagens/menu_contato.png') no-repeat center !important; 
background: url('imagens/menu_contato.gif') no-repeat center; 
} 
#fancymenu li.background { 
background: url('imagens/bg_menu_right.png') no-repeat top right !important; 
background: url('imagens/bg_menu_right.gif') no-repeat top right; 
z-index: 1; 
position: absolute; 
visibility: hidden; 
} 
  
#fancymenu .background .left { 
background: url('imagens/bg_menu.png') no-repeat top left !important; 
background: url('imagens/bg_menu.gif') no-repeat top left; 
height: 30px; 
margin-right: 7px; /* 7px is the width of the rounded shape */

Editado por BananaRJ
Link para o comentário
Compartilhar em outros sites

  • 0

É...ta retornando false. Aí o href não é executado.

O problema é que não conheço mootools, lá na documentação deles deve ensinar como usar as funções e tal.

Dá uma olhada lá...o que acontece é que são adicionados eventos para os elementos do menu, mas o retorno dos eventos é false, fazendo com que o link não funcione.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0
É...ta retornando false. Aí o href não é executado.

O problema é que não conheço mootools, lá na documentação deles deve ensinar como usar as funções e tal.

Dá uma olhada lá...o que acontece é que são adicionados eventos para os elementos do menu, mas o retorno dos eventos é false, fazendo com que o link não funcione.

Abraço

Vlw pela ajuda :)

Para quem souber javascript e puder olhar o arquivo com todas as funcoes do mootools acessem: clique aqui

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...