Jquety - mudar classes de LI
|
19-12-2011, 11:53
Mensagem: #1
|
|||
|
|||
Jquety - mudar classes de LI
Boas
Estou a tentar mudar a class de uma LI quando carrego nela e simplesmente ja tentei algumas funções e nada, como por exemplo, $(document).ready(function () { $('li.li2').click(function () { $('#link2').removeClass('sub').addClass('left'); ou $('#link2').css('color, 'green'); }); }); Tentei estas basicas, pois nao tem nenhum filho e nenhum pai. Podem me ajudar? codigo da LI (é uma LI dentro doutra, como uma subLI): <asp:Repeater ID="RepeaterSubMenu" runat="server" OnItemDataBound="RepeaterSubMenu_ItemDataBound"> <ItemTemplate> <li class="li2"><a id="link2" runat="server" class="sub"> <asp:Literal ID="LiteralName" runat="server"></asp:Literal></a> </ItemTemplate> </asp:Repeater> Css: .sub:link{color: #514e4c;padding-left: 28px;padding-bottom: 5px;padding-top: 5px;float: left;} .sub:visited{color: #514e4c;} .sub:active{color: #514e4c;} .sub:hover{color: #99CC00;margin-right: 0px;margin-left: 0px;} .left:link{color: #99CC00;padding-left: 28px;padding-bottom: 5px;padding-top: 5px;float: left;} .left:visited{color:#99CC00;} .left:active{color: #99CC00;} .left:hover{color: #99CC00;margin-right: 0px;margin-left: 0px;} Como devem reparar, quero carregar no Link2 (respectivo ao LI2) e assim trocar de class. Agradeço a quem me puderr ajudar Cumprimentos, Article0 |
|||
19-12-2011, 12:02
Mensagem: #2
|
|||
|
|||
RE: Jquety - mudar classes de LI
A menos que estejas a dar referências (id's, classes ou objectos) erradas, deveria funcionar.
Já experimentaste fazer um debug para confirmar se está a ser executado o código quando clicas? (tip: console.log()) A única forma que vejo para isso não funcionar é se estiveres a adicionar esses elementos depois do DOM já estar carregado (por exemplo, por javascript/ajax). Nesse caso, terás de usar o live('click') em vez do click(). BrunoBernardino.com |
|||
19-12-2011, 12:11
Mensagem: #3
|
|||
|
|||
RE: Jquety - mudar classes de LI
Ja exprimentei fazer um debug e por o live('click') e tambem nada.
Se eu puser um alert(' ') o gajo ate me apresenta a caixa. A minha duvida é... Como as 3 Li vao mandar a uma pagina, será que faz a função quando carrego mas deixa de fazer efeito quando carrega a pagina onde a LI mandou? Pode ser isso. Queria fazer algo como isto: http://www.java2s.com/Tutorial/JavaScrip...ssname.htm Eu pensava que podia fazer desta maneira |
|||
19-12-2011, 12:30
Mensagem: #4
|
|||
|
|||
RE: Jquety - mudar classes de LI
Desculpa lá, mas tens aí incoerências no que dizes que me leva a acreditar que não estás a fazer bem o debug.
De qualquer das formas, se o link vai para outro lado, o teu problema é obviamente esse. Tens de fazer um return false no evento de click do anchor, ou pelo menos um event.preventDefault(); BrunoBernardino.com |
|||
19-12-2011, 12:32
Mensagem: #5
|
|||
|
|||
RE: Jquety - mudar classes de LI
Ja exprimentei fazer um debug e por o live('click') e tambem nada.
Se eu puser um alert(' ') o gajo ate me apresenta a caixa. A minha duvida é... Como as 3 Li vao mandar a uma pagina, será que faz a função quando carrego mas deixa de fazer efeito quando carrega a pagina onde a LI mandou? Pode ser isso. Queria fazer algo como isto: http://www.java2s.com/Tutorial/JavaScrip...ssname.htm Eu pensava que podia fazer desta maneira |
|||
19-12-2011, 12:54
Mensagem: #6
|
|||
|
|||
RE: Jquety - mudar classes de LI
Boas,
Não sei se foi erro de copy paste, mas vejo para já um problema no repeater, falta fechar o li. Outra coisa que não tenho a certeza, é que ao fazer o <a runat="server"> se o id do lado do cliente não é gerado no server side. Tens o firebug instalado? |
|||
19-12-2011, 13:09
Mensagem: #7
|
|||
|
|||
RE: Jquety - mudar classes de LI
Sim tenho o firebug instalado.
O fecho da LI foi culpa do paste, pois aqui ta fechado. Acho que nesse caso do id gerado, nao a problema pois ele ja executou varias funções que fiz. O problema é mesmo do codigo. Com o firebug, fui por o codigo na consola e nada. Faltou me por uma coisa: <ul class="dl3"> <asp:Repeater ID="RepeaterSubMenu" runat="server" OnItemDataBound="RepeaterSubMenu_ItemDataBound"> <ItemTemplate> <li class="li2"><a id="link2" runat="server" class="sub"> <asp:Literal ID="LiteralName" runat="server"></asp:Literal></a></li> </ItemTemplate> </asp:Repeater> </ul> Esta é a estrutura do subLI. tentei fazer isto: $('#link2').removeClass('sub').addClass('left'); $('.dl3').removeClass('left'); $(this).parent().addClass('left'); $('#link2.dl3').removeClass('sub').addClass('left'); e nao da, ja testado no console do firebug. Ideias? |
|||
19-12-2011, 13:15
Mensagem: #8
|
|||
|
|||
RE: Jquety - mudar classes de LI
mas os identificadores estão correctos? Ou seja, a referência para $('#link2') existe mesmo? (o que te retorna na consola um $('#link2').length ?) Isto sem links é muito complicado...
BrunoBernardino.com |
|||
19-12-2011, 13:20
Mensagem: #9
|
|||
|
|||
RE: Jquety - mudar classes de LI
vou fazer o seguinte.
O site que estou a desenvovler é: http://wingerconsulting.spirituc.com/ O que estou a dizer é no menu do lado esquerdo onde nas actividades, soluções e produtos, quando carrego e vai para a pagina dele, o nome tem de ficar verde. O resto ja tenho em cima |
|||
19-12-2011, 16:39
Mensagem: #10
|
|||
|
|||
RE: Jquety - mudar classes de LI
Deixa ver se percebo o que queres:
Quando carregas num link e vais para a página, queres que o menu fique selecionado, i.e. quando estou em "Produtos", este fique com o estilo de selecionado, correcto? Se é esta a intenção e os pedidos são em post-back, pq não fazes isto no servidor? Ou seja, quando estás a escrever o menu (repeater), escreves no li (acho que é no li) o estilo a indicar que estás nessa area? É que ao fazer o click, tas a fazer um post-back e perdes todas a referencias para tudo o que tinhas nessa página. Percebi mal? |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 1 Visitante(s)