-2

jQueryでこのようなことができる場所を見たと思いました

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

最初のクリックで最初のクリック、2 回目のクリックで 2 回目のクリック、3 回目のクリックで最初のクリックに戻ります。この特定のサンプルが機能しないことはわかっていますが、jQuery でクリック動作を切り替える同様の方法はありますか?

4

2 に答える 2

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>
于 2012-04-28T08:46:47.133 に答える
0

あなたはほとんどそこにいます。jQueryのトグル イベントを使用して、この動作を実現できます。これにより、連続するクリックごとに、指定したコールバックが繰り返されます。あなたの場合、これを行うことができます:

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

必要に応じて、循環するコールバックの任意の数を指定できます

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

このjsFiddle デモ ページで実際の動作を確認できます。

于 2012-04-29T14:15:51.980 に答える