【问题标题】:Why doesn't my mouseOver functions work?为什么我的 mouseOver 功能不起作用?
【发布时间】:2014-06-29 02:29:27
【问题描述】:

游戏非常简单,您单击开始按钮开始,然后沿着轨道移动鼠标直到到达终点,然后计时器停止并显示分数。如果你跑出赛道,你会得到零分。

为什么我的 mouseOver 功能不起作用? 链接到我的完整代码:http://www.codecademy.com/TictacTactic/codebits/AQBK4L/edit

提前谢谢你!

var score = 1000;
var timer = setInterval(countDown(), 1000);

$(document).ready(function() {
$('#start').click(function() {
    $('#game').mouseover(function() {
        stopTimer();
        score = 0
        $('#points').html(score)
    });
    $('#end').mouseover(function() {
        stopTimer()
        $('#points').html(score)
});
});
});
function countDown() {
score = score - 1;
}

function stopTimer() {
clearInterval(timer);
}

【问题讨论】:

  • mouseOver != mouseover,问题出在这里。
  • 为什么不贴相关代码?
  • 感谢您的帮助。我是新来的。

标签: javascript jquery html function mouseover


【解决方案1】:

大多数事件都是小写的,如mouseovermouseout 等。还有其他的有大写字母,如DOMContentLoaded。大多数(如果不是全部)编程语言都区分大小写,请注意这些。

【讨论】:

  • 每当我将鼠标悬停在开始按钮上时,分数似乎都会重置为零。奇怪。
【解决方案2】:

试试这个

    var clicked = false;

$('#start').click(function() {
    if(!clicked){
        clicked = true;         
    }
});

$("#game").hover(function(){
    if(clicked){
        stopTimer();
        score = 0;
        $("#points").html(score);
    }
});
$("#end").hover(function(){
    if(clicked){
        stopTimer();
        $("#points").html(score);
    }
});

然后,如果您不希望悬停事件起作用,只需将 clicked 设置为 false IE:clicked = false;

【讨论】:

  • 非常好的主意,我一直在寻找关闭开关的想法,但它似乎不起作用。
  • 我再次尝试了您的代码。当我用鼠标代替悬停时,它起作用了,但是当我添加 score = 1000; $("#points").html(score);所以点击时分数会回到1000它不起作用
  • 啊,好吧,我想到了关闭开关,因为我不确定悬停事件是否会完全起作用。
猜你喜欢
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
相关资源
最近更新 更多