2012-04-27 64 views
-2

我以为我看见的地方,你可以做这样的事情在jQuery的jQuery的切换与

$(".show").on("click", function(){ 
    alert('1st'); 
}, function() { 
    alert('2nd'); 
}); 

其中第一个点击将调用拳之一,第2个点击:第二个和第三个回第一一。我知道这个特定的示例不起作用,但有没有类似的方式来切换jQuery中的点击行为?

+0

这将始终激发alert('2nd')':http://jsfiddle.net/5ZCyx/ – fcalderan 2012-04-27 16:00:27

+1

你的问题是? – NicoSantangelo 2012-04-27 16:00:28

+0

不!我不工作! – JeanValjean 2012-04-27 16:01:28

回答

0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('.show').addClass('OddClick'); 

      $('.show').live('click', function() { 
       var obj = $(this); 

       if (obj.hasClass('OddClick') === true) { 
        obj.addClass('EvenClick').removeClass('OddClick'); 
        alert('1st'); 
       } 
       else { 
        obj.addClass('OddClick').removeClass('EvenClick'); 
        alert('2nd'); 
       } 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <div class="show" style="font-size: 25px; font-weight: bolder; cursor: pointer;"> 
     Hello World 
    </div> 
</body> 
</html> 
+0

现场演示请参阅此链接:http://jsfiddle.net/nanoquantumtech/4EhMj/ – Thulasiram 2012-04-28 08:48:14

0

你快到了。你可以在jQuery中使用toggle event来实现这种行为。它会导致每次连续的点击循环你提供的回调。你的情况,你可以这样做:

$(".show").toggle(function(){ 
    alert('1st'); 
}, function() { 
    alert('2nd'); 
}); 

您可以通过,如果你喜欢

$(".show").toggle(function(){ 
    alert('1st'); 
}, function() { 
    alert('2nd'); 
}, function(){ 
    alert('3rd'); 
}); 

提供回调任意数量的循环你可以看到这个动作在这个jsFiddle demo page