Проблема статических переменных в JQuery - PullRequest
0 голосов
/ 15 апреля 2009
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;
}

Извините, я немного говорю по-английски. В любом случае я начинаю: D

Я хочу сделать эту функцию с очередью. Но я всегда 0. Я знаю, что делаю это. Итак, что я могу сделать: D

Могу ли я взять переменные CSS. (div # rozet) .top переменная, я могу использовать ее, если

Ответы [ 2 ]

0 голосов
/ 15 апреля 2009

Вам нужно использовать else if. Если вы вызываете функцию, которая выполняет эти два if, обе будут работать, если i == 0. Вы можете проверить это, поместив предупреждение в каждую функцию. Когда i равен 0, первый оператор if является истинным и выполняет работу, и устанавливает для i значение 1, а затем второй оператор if, выполняющий его сейчас, также имеет значение true, поскольку последний оператор if для i имеет значение 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;
  }
});

Это конечный результат, который я создал с помощью Firebug. Если у вас есть Firebug , вы можете запустить это в консоли на этой странице. После запуска вы можете нажать на строку, содержащую количество ответов и параметры сортировки. Я думаю, это примерно то, что вы искали.

0 голосов
/ 15 апреля 2009

где меня объявляют и устанавливают?

НО, у вас есть если (я == 0)

до $ (Документ) .ready (функция () {

Это проблема. $ (document) .ready () - это обработчик событий, поэтому вызывается код в $ (document) .ready (), несмотря на то, что я равен.

Вы должны переработать свой код так, чтобы

$(document).ready(function(){
  if (i == 0) {
    ...
  }
  if (i == 1) {
    ...
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...