2011-08-26 79 views
0

所以我有一个onclick事件,然后在同一次点击另一个事件。基本功能是这样的:如何在javascript中循环这个?

1)点击图片 - 放大700% 2)再次点击图片 - 放大100% 3)再次点击图片 - 放大100%

我想第3步恢复到第1步,然后到第2步等。现在,它只是重复第2步,而不是恢复到默认值。

下面是代码:

$(document).ready(function() { 
    $(".zoomTarget").debug(); 
    $(window).resize(function(evt) { 
     $(".zoomTarget").debug(); 
    }); 
    $(".zoomTarget").click(function(evt) { 
     evt.stopPropagation(); 
     $(this).zoomTo({ 
      targetsize: 5.0 
     }); { 
      $(".zoomTarget").click(function(evt) { 
       evt.stopPropagation(); 
       $("body").zoomTo({ 
        targetsize: 1.0 
       }); 
      }); 
     } 
    }); 
    $(document).click(function(evt) { 
     evt.stopPropagation(); 
     $("body").zoomTo({ 
      targetsize: 1.0 
     }); 
    }); 
    $("body").zoomTo({ 
     targetsize: 1.0 
    }); 
}; 
+0

我想你想要这个:http://api.jquery.com/toggle-event/ –

+0

什么是多余的块声明? ':)' –

回答

0

个人而言,我会使用ready函数内的布尔跟踪我处于什么状态,然后切换它的处理程序中:

var zooming_in=true; 
$(".zoomTarget").click(function(evt) { 
    evt.stopPropagation(); 
    $(this).zoomTo({ 
      targetsize: (zooming_in=!zooming_in)?5.0:1.0 
    }); 
}); 
+0

您不能使用关键字“in”作为变量。这使整个代码无效。但是,谢谢你的答案。 – 0x499602D2

+0

你明白了,我会用更好的名字更新。不会说它“废除”它,这个概念很好,只需要一个新的变量名称...... – Blindy