静态变量问题在JQuery上

时间:2009-04-15 17:02:25

标签: jquery variables global

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 :(得分:0)

我在哪里被宣布并设定?

但是你有你的     if(i == 0)

之前     $(文件)。就绪(函数(){

这是一个问题。 $(document).ready()是一个事件处理程序,所以在$(document).ready()中的代码被调用,尽管我是等于。

您必须重新编写代码以便

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

}

答案 1 :(得分:0)

你需要使用else if。如果你正在调用运行这两个ifs的函数,那么如果i == 0,它们都将运行。你可以通过在每个函数中添加一个警报来检查它。当i为0时,第一个if语句为true并且完成工作,并且将i设置为1而不是第二个如果运行它现在也是真的,因为最后一个如果将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,则可以在此页面的控制台中运行此命令。运行后,您可以单击包含答案数和排序选项的行。我认为这大致是你所寻找的。