使用JQuery在单击过程中跟踪鼠标运动

使用JQuery在单击过程中跟踪鼠标运动,jquery,Jquery,如何使用JQuery跟踪鼠标下移到鼠标上后的鼠标运动?跟踪应该在单击某个目标元素时开始,并继续执行mouseup,即使鼠标移出目标元素 <div id="some_elt"> <div id="target"> </div> </div> 我能想到的唯一方法是将mousemove绑定到整个文档,并根据从$(“target”).mousedown设置的全局标志调用我的运动处理程序,然后从$(“target”).mouseup取消设置

如何使用JQuery跟踪鼠标下移到鼠标上后的鼠标运动?跟踪应该在单击某个目标元素时开始,并继续执行mouseup,即使鼠标移出目标元素

<div id="some_elt">
   <div id="target">
   </div>
</div>

我能想到的唯一方法是将
mousemove
绑定到整个文档,并根据从
$(“target”).mousedown
设置的全局标志调用我的运动处理程序,然后从
$(“target”).mouseup取消设置

还有比这更优雅的方法吗

编辑:我想我需要多加一点。。。我的目标已经应用了
draggable()
。我想做一个像样的图像查看器。我有一个视口
div
包含一个可拖动的
img
。我正在尝试使用shift+中键单击的方式使图像可缩放,而不会干扰导航的拖动功能。我是否必须依靠JQuery在引擎盖下所做的工作来实现可拖动的工作


编辑2:回答我的编辑:当然不是!JQuery太棒了

我认为最优雅的方式之一是使用:


使用事件目标开始跟踪

$(document).mousedown(function(event){
   if( event.target.id=="target"){
     $(this).on('mousemove',function(event){
          /* do tracking*/
      })
   }
}).mouseup(function(){
    $(this).off('mousemove');
})
对于小于1.7的jQuery版本

$(document).mousedown(function(event){
   if( event.target.id=="target"){
     $(this).mousemove(function(event){
          /* do tracking*/
      })
   }
}).mouseup(function(){
    $(this).unbind('mousemove');
})

这是常用的方法…好的。可能使用jQuery版本<1.7。对的我为JQueryah yep的较低版本添加了另一种风格:1.5。我应该尝试升级。耶!您的示例运行正常,升级后没有明显的问题:)
$(document).mousedown(function(event){
   if( event.target.id=="target"){
     $(this).mousemove(function(event){
          /* do tracking*/
      })
   }
}).mouseup(function(){
    $(this).unbind('mousemove');
})