problema variável estática em JQuery
Pergunta
if(i==0){
$(document).ready(function(){
$("div#rozet").hover(function(){
$(this).hide("fast");
$(this).animate(
{ top:'+45px', left:'+500px'},
{duration: 1}
);
$(this).show("slow");
$(this).stopall();
});
i=1;
}
if(i==1){
$("div#rozet").hover(function(){
$(this).hide("fast");
$(this).animate(
{ top:'-85px', left:'+500px'},
{duration: 1}
);
$(this).show("slow");
$(this).stopall();
});
});
i=0;
}
Me desculpe, eu tenho um pouco de Inglês. De qualquer forma eu estou começando: D
Eu quero fazer isso funciona com fila. Mas eu é sempre 0. Eu sei que eu estou fazendo isso. Então, o que posso fazer: D
variáveis ??Can I take da CSS. variável de (div # rozet) .top, eu posso usá-lo em caso
Solução
Você precisa usar um else if. Se você está chamando uma função que executa esses dois ifs, ambos serão executados se i == 0. Você pode verificá-lo, colocando um alerta em cada função. Quando i é 0, o primeiro caso afirmação é verdadeira e faz o trabalho, e conjuntos i a 1 e que o segundo se corre agora também é verdade desde o último caso set i a 1.
i = 0;
jQuery("#subheader").click(function () {
if (i == 0) {
alert ("i was 0");
i = 1;
}
else if (i == 1) {
alert ("i was 1");
i = 0;
}
});
Este é o resultado final que eu criei usando o Firebug. Se você tiver Firebug você pode executar este no console nesta página. Uma vez que ele é executado, você pode clicar na linha que contém o número de respostas e as opções de classificação. Eu acho que é mais ou menos o que você estava procurando.
Outras dicas
onde é i sendo declarado e set?
Mas, você tem o seu if (i == 0)
antes do $ (Document) .ready (function () {
Isso é um problema. $ (Document) .ready () é um manipulador de eventos, para que o código em $ (document) .ready () está sendo chamado, apesar do que i é igual a.
Você tem que retrabalhar seu código para que
$(document).ready(function(){
if (i == 0) {
...
}
if (i == 1) {
...
}
}