0

我想为每次点击在一个类中显示一些文本,但保留 clicky 类。很快,如果你点击2次,你会得到一个div-text“你点击了两次”,你仍然可以点击第三次,然后你会得到“你点击了三次”,直到第五次一切都结束了会隐藏。有什么简单的方法可以做到这一点吗?我试过这个,但无法让它工作。

var clicks = 0;
$('.clicky').on('click', function()
    {
    clicks++;
        if(clicks >= 3)
        {
        $(this).add($('.background')).add($('.hello'));
        }

        else(clicks >= 5)
        {
        $(this).add($('.background')).hide();
        }
        });​

http://jsfiddle.net/sLAzY/ 这是一个隐藏功能的工作示例。

希望你明白我的意思
祝你有美好的一天!

4

2 回答 2

1

使用 switch 语句。请注意,因为您的元素只有类属性,所以选择器可以匹配多个元素。只是要记住的事情。

用于测试的小提琴

var clicks = 0;
$('.clicky').on('click', function(){
    var string;
    clicks++;
    switch(clicks){
    case 1:
        string = "You clicked one time";
        $('.clicky').text(string);
        break;
    case 2:
        string = "You clicked two times";
        $('.clicky').text(string);
        break;
    case 3:
        string = "You clicked three times";
        $('.clicky').text(string);
        break;
    case 4:
        string = "You clicked four times";
        $('.clicky').text(string);
        break;
    case 5:
        $(this).add($(".background")).hide();
        break;
    }
});​
于 2012-12-02T10:50:14.853 回答
1

这对你有帮助吗。我使用 JQuery data() 而不是全局变量。因此,这将帮助您拥有 clicky 类的多个元素。

<div class="clicky">
    aaaa 
</div>
<div class="clicky">
    bbbb
</div>
<script type="text/javascript" src="jquery.js" ></script>
<script type="text/javascript">
$('.clicky').data('times', 0);
$('.clicky').on('click', function(){
    var times = parseInt($(this).data('times')) + 1;
    $(this).data('times', times);
    if( times >= 3 && times<5)
        $(this).addClass('background').addClass('hello');
    else if (times >= 5){
        $(this).hide('fast');
    }
});  
</script>
于 2012-12-02T10:59:57.460 回答