[RESOLVIDO] Dúvida jQuery - alternar valor

Estou com uma dúvida num código:

Um “show details” / “hide details”

Na primeira vez que clica, ele ta mudando o valor, só a partir da segunda:

O valor ta como "show"

Valor = show

Valor = hide


		$("button#id").click(function() {
			if($("button#id").html()=="show details") {
				$("button#id").html("hide details")
			}else {
				$("button#id").html("show details")
			};

			$("#div").slideToggle(400);
			
		});

Valeu!

Eu nao entendi direito a sua duvida.

Mas pelo que eu entendi do seu codigo, vc quer:

  1. clicar no botao, mostrar o div e mudar o label do botao para “hide details”.
  2. clicar no botao novamente, se o div estiver visible, esconde o div e mudar o label do botao para “show details”.

Eh isso???

Voce poderia escrever esse codigo um pouco melhor, dessa forma:

HTML:

<button id="details"/>Show details</button>
<div id="divdetails" style="display:none">
    Details div!!!<br>
    Details div!!!<br>
    Details div!!!<br>
    Details div!!!<br>
</div>

Javascript:

$("#details").click(function() {
    var isShowingDetails = $("#divdetails").is(":visible");
    var buttonlabel = (isShowingDetails ? "Show details" : "Hide details");
    $(this).html(buttonlabel);
    $("#divdetails").slideToggle(400);
});&#8203;

Eu nao gosto muito essas comparacoes de string igual vc fez no seu codigo e fazendo dessa forma o codigo fica mais limpo e facil de entender.

  1. eu verifico se o div com os detalhes esta visible ou nao.
  2. defino o label do botao dependendo da variavel isShowingDetails.
  3. modifico o label do botao e mostrou ou escondo o div.

Aqui tem o codigo funcionando se vc quiser testar: http://jsfiddle.net/windsofhell/s6C95/2/

//Daniel

Obrigao Daniel, era isso mesmo.

São meus primeiros contatos com jQuery/Javascript, deve ser por isso que o codigo tava sujo

Resolvido ;D

[quote=hudson5]Obrigao Daniel, era isso mesmo.

São meus primeiros contatos com jQuery/Javascript, deve ser por isso que o codigo tava sujo

Resolvido ;D[/quote]

Legal! Fico feliz em ter ajudado. Eu tambem estou aprendendo JQuery. :slight_smile:

Edita o titulo do seu topico e adiciona [RESOLVIDO] na frente, sem apagar o titulo original.

//Daniel