Jump to content
Bernardo Vieira

Nao consigo usar o clique após recarregar (jQuery)

Recommended Posts

Bernardo Vieira

olá, desculpem-me se estiver errado mas penso que a area para jQuery é esta

bom, o meu problema é o seguinte! eu tenho umas imagens e quero que quando eu clique numa elas troquem de posicoes (até aqui tudo certo) entao, eu tenho um menu, ao clicar na primeira opcao esta nas imagens, quando clico na segunda opcao apaga as imagens e mostra texto (tudo correto) porém, quando eu volto a clicar sobre a primeira opcao do menu, as imagens aparecem mas nao posso selecioná-las...alguém me sabe dizer porque?

o codigo é bem básico

esse esconde as imagens e mostra o text

$("#menucentro").children().remove();
$("#menucentro").html("<p>Nome:</p>");

e esse faz o contrario

$("#menucentro").children().remove();
$("#menucentro").html("<img src='gtagirl.png' class='gtagirle' /><img src='gtagirl.png' class='gtagirlc' /><img src='gtagirl.png' class='gtagirld' />");

eu sei que nem precisava disso "$("#menucentro").children().remove();" porque o .html por si só já subestitui, mas achei que devia usar!

obrigado desde já

Edited by Bernardo Vieira

Share this post


Link to post
Share on other sites
Paulo Cabral

envés de usares o remove usa o .show() e o .hide(); para ocultares e mostres as imagens ...

Share this post


Link to post
Share on other sites
Bernardo Vieira

sim, eu pensei nisso, mas imagina que eu quero que ao iniciar a pagina carregue o texto e so depois ao selecionar a segunda opcao do menu é que vejo as imagens! entao para isso primeiro tenho de carregar as imagens, ocultar e so depois é que mostro e volto a ocultar se quiser. eu achei melhor trocar isso! sei la. ideia minha

Share this post


Link to post
Share on other sites
Paulo Cabral

sim, eu pensei nisso, mas imagina que eu quero que ao iniciar a pagina carregue o texto e so depois ao selecionar a segunda opcao do menu é que vejo as imagens! entao para isso primeiro tenho de carregar as imagens, ocultar e so depois é que mostro e volto a ocultar se quiser. eu achei melhor trocar isso! sei la. ideia minha

qual o problema de carregares as imagens e ocultares? Não percebi muito bem, podes explicar melhor?

Share this post


Link to post
Share on other sites
Bernardo Vieira

nao tem problema nenhum deixa pra lá, eu queria saber mesmo é porque é que isso nao funcionava! queria fazer assim, mas como nao dá vai de outra forma!

Share this post


Link to post
Share on other sites
brunoais

Os eventos estão associados a nodes no DOM. Se removes o Node, então removes tb o evento.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
malleus

Como o brunoais já te disse a partir do momento que removes elementos(nodos) os seus eventos também se perdem.

Se compreendo bem o teu caso, e para não alterar qualquer tipo de estrutura tens duas hipóteses:

1) Eventos LIVE

$('#menucentro img').live('click', function() {
  // ...
});

2) ON/OFF

$('#menucentro').on('click', 'img', function() {
  // ...
});

A idéia de ambos é similar, deixar os eventos click "borbulhar" para cima na estrutura do DOM. A segunda opção é muitm mais eficiente e a primeira está em vias de deixar de ser suportada.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.