4

在这段代码中,我试图让用户抓住黑色方块并围绕内圈旋转它。

http://jsfiddle.net/4CL9H/1/

如果您尝试这样做,您会注意到光标在 Firefox 中大约有 50% 的时间被卡住,从而阻止$(document).off('mousemove');执行,除非您再次单击以调用mouseup事件处理程序。

这似乎在 IE、chrome 和 safari 中运行良好(如果你快速单击黑色方块会崩溃)但是它在 Firefox 中给我带来了问题。

无论如何我可以改进这段代码,使光标不会卡在 Firefox 中?

注意 如果您无法让光标卡住,请尝试单击并按住(不移动)黑框的底角,然后从左到右快速移动光标。

4

1 回答 1

3

在 mousedown 部分添加 event.preventDefault。

$('#container').on('mousedown', '#marker', function(event){
    event.preventDefault();
    $(document).on('mousemove', function(event){
        rotateAroundCircle($('#innerCircle').parent(), event.pageX,event.pageY, $('#marker'));
    });
});

我相应地修改了你的小提琴并进行了角落测试。似乎工作正常。新小提琴

于 2012-04-15T01:25:35.400 回答