如果悬停时间过长,则Jquery禁用单击

时间:2010-11-16 00:22:06

标签: jquery

我有一个jquery游戏,你可以在这里查看link text

游戏首先在文本字段中输入数字。然后单击播放按钮。

点击播放按钮后,每个旋转的随机数会出现一组方块,点击有你的号码的方块来建立你的分数,错过3次就完成了。

我将游戏添加到了我的网站,您可以在此处查看link text

我遇到的问题是我的网站成员只会将光标放在一个方框上并等待他们的号码出现在那个方框中。哪个毁了游戏。有没有办法让它不能连续多次点击同一个盒子。他们必须先点击另一个方框然后才能回到这个方框。

这是我的完整脚本

var hitCount = 0,
    missCount = 0;

function IsNumeric(n) {
    return !isNaN(n);
}

$("#getit").click(function() {
    var hitCount = 0,
        missCount = 0;
    $('#hitcount').text(0);
    $('#misscount').text(0);

    $('#message').hide(100);
    var li = [],
        intervals = 0,
        n = parseInt($('#MyNumber').val());

    var intervalId = -1;
    if (IsNumeric(n)) {
        intervalId = setInterval(function() {
            li[intervals++ % li.length].text(Math.random() > .1 ? Math.floor(Math.random() * (10 + n) + (n / 2)) : n).attr('class', '')    ;
        }, <?php echo $time ?>);
    }

    $('#randomnumber').empty();

    for (var i = 0; i < 7; i++) {
        li.push($('<li />').appendTo('#randomnumber'));
    }

    $('#randomnumber').delegate("li", "click", function() {
        var $this = $(this);

        if (!$this.hasClass('clicked')) {
            if (parseInt($this.text(), 10) === n) {
                $this.addClass('correct');
                $('#hitcount').text(++hitCount);
            } else {
                $this.addClass('wrong');
                $('#misscount').text(++missCount);
            }

            //New code If the missCount > 3 stop the game and save the value
            if(missCount>=<?php echo $limit ?>){
                clearInterval(intervalId);
                $('#randomnumber').undelegate("li", "click");
                // Use a ajax request to save the values

                $.ajax({
                    type : 'POST',
                    url : 'FBhighscore_hwnd.php',
                    dataType : 'json',
                    data: {
                        tgameid: $('#tgameid').val(),MyNumber: $('#MyNumber').val(),totalHits: hitCount
                    },
                    success : function(data){
                        $('#waiting').hide(500);
                        $('#message').removeClass().addClass((data.error === true) ? 'error' : 'success')
                            .text(data.msg).show(500);
                        if (data.error === true)
                            $('#loginForm').show(500);
                        else
                            $('#send').hide(500);
                    },
                    error : function(XMLHttpRequest, textStatus, errorThrown) {
                        $('#waiting').hide(500);
                        $('#message').removeClass().addClass('error')
                            .text('There was an error.').show(500);
                        $('#loginForm').show(500);
                    }
                });

            }
        }

        $this.addClass('clicked');
    });

    return false;
});

2 个答案:

答案 0 :(得分:1)

我希望这会有所帮助:demo

我进行了设置,以便在出现一组新的块之前,该人实际上必须尝试在每个块上选择它们的编号。如果这对您有用,请告诉我。

答案 1 :(得分:0)

一旦玩家点击一个正方形并将其标记为“非活动”,然后在鼠标移动或鼠标移动到另一个正方形之后再将其重新激活,该怎么办?

这样的事情:

$('.gamesquare').click(function() {
    if(!$(this).hasClass('disabledSquare')) {

        // Do your game logic for clicks here

        $(this).addClass('disabledSquare');
    }
}

$('.gamesquare').mouseout(function() {
    $(this).removeClass('disabledSquare');
}