点击事件并不总是有效

时间:2014-05-31 12:24:18

标签: javascript jquery html

所以我的JS代码有问题。会发生什么事情,当我在div上执行鼠标点击事件时,它总是在其中执行一半操作,但另一半只是在一半的时间内完成。

这是我的js

$(document).ready(function(){
var currentMousePosition = new MousePosition(0,0);
var positionArray = []


$("html").mousemove(function(event){
    if(currentMousePosition.x != event.pageX || currentMousePosition.y != event.pageY){
        currentMousePosition.x = event.pageX;
        currentMousePosition.y = event.pageY;
        if(positionArray.length<500){
            positionArray.push(new MousePosition(currentMousePosition.x,currentMousePosition.y));
        }
        //$("#array").html(JSON.stringify(positionArray));
        $("#data").html("( "+event.pageX+" , "+event.pageY+" ) - moves: "+positionArray.length);
    }
});

$("#mouse").on("click",function(){
    var start = new Date().getTime();
    var m1=0;
    var m2=0;
    for(var i=0;i<positionArray.length-2;++i){
        m1=(positionArray[i+1].y-positionArray[i].y)/(positionArray[i+1].x-positionArray[i].x);
        m2=(positionArray[i+2].y-positionArray[i].y)/(positionArray[i+2].x-positionArray[i].x);
        while(m1==m2){
            var p=i+2;
            positionArray.splice(p-1,1);
            m2=(positionArray[p].y-positionArray[i].y)/(positionArray[p].x-positionArray[i].x);
        }
    }
    var end = new Date().getTime();
    var time = end - start;

    $("#array").html(JSON.stringify(positionArray));
    $("#mouse").html(time);
    $("#data").html("( "+event.pageX+" , "+event.pageY+" ) - moves: "+positionArray.length);
});

});

和相应的html

<button id="mouse">time</button>

<div id="data"></div>
<div id="array"></div>
<div id="time"></div>

我知道当我点击#mouse时,for循环总会通过。但是,那些3 .html更新并不适用。这很奇怪,因为它的随机基数为50%。

我是JS newby,我有任何明显的错误吗?

由于

更新 这样做是每次鼠标移动时检测并将位置保存在positionArray中。当我单击#mouse div时,它会遍历数据并检查一行中的点,并删除它们,尽管算法不是这里的重点。点击后,它应该应用该算法(它所做的)并更新那些#array,#mouse和#date的文本(它没有&#t;)。

有任何线索吗?

0 个答案:

没有答案