1

我对 jQuery 比较陌生,所以如果我问的是一个基本问题,我很抱歉,但我在事件触发方面遇到了问题。现在我正在尝试设计一种图像平移工具,用户可以在其中在查看窗口(固定 div)内向任何方向平移图像。在鼠标按下时,该函数将开始执行一些计算,在鼠标移动时,在将值传递到

$(this).css('background-position', both);

线,其中两者都是新计算的位置。

到目前为止它一直有效,但我在从mousemove事件中释放时遇到问题。在最初的鼠标按下和鼠标移动之后,我似乎无法通过鼠标向上释放平移,并且用户无需单击即可平移图像。

这是基本骨架(#test指查看div):

$("#test").mousedown( function(e) {
                
/* Various Calculations*/
            
$(this).mousemove( function(f) {

/* More Calculations, variable 'both' is assigned new coord value */
                
$(this).css('background-position', both);
    });         
});

我试过mouseup在不同的地方附加一个事件,但我不确定正确的地方在哪里,以及如何发布。任何帮助是极大的赞赏!

4

2 回答 2

2

要删除事件,您需要将其与对象解除绑定:

$("#test").unbind("mousemove");

你剩下的问题我不清楚

于 2009-08-19T22:04:17.650 回答
1

作为替代方案,jQuery UI中有一个可以满足您需求的可拖动对象。它包括启动、停止和拖动事件。

这完全取决于您是否想要另一个依赖项。

至少,您可以检查它们如何执行事件序列来模拟相同的行为。

于 2009-08-19T22:20:13.500 回答