jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 单击时禁用mousemove大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_696_4@ 我正在尝试拖放’n’,这是我的代码

$('.Box-title').live('mousedown click',function(E)
{
    var self = $(this);
    var Box = self.parent('#Box');

    if(e.type == 'mousedown')
    {
        $(window).mousemove(function(E)
        {
            Box.css({ cursor: 'move',top: e.pageY - 15,left: e.pageX - 125 });
        });
    }
    else if(e.type == 'click')
    {
        Box.css({ cursor: 'default',left: e.pageX - 125 });
    }
});

在mousedown上,它应该通过移动鼠标启动拖动效果,之后如果我想停靠/放下我想要它的盒子,我点击它应该禁用移动但是如果我点击它,它不会停止移动 – 只是一直跟着我的鼠标.你怎么能阻止拖拽?

解决方法

您需要取消绑定当前仍附加的mousemove处理程序,例如:

function setPos(E) {
  //can be $('#Box') in this case...
  $(this).parent('#Box').css({ cursor: 'move',left: e.pageX - 125 });
}    
$('.Box-title').live('mousedown click',function(E) {
    if(e.type == 'mousedown') {
        $(window).mousemove(setPos);
    }
    else if(e.type == 'click') {
        $(window).unbind('mousemove',setPos);
    }
});

或者,在jQuery 1.4.3中,.live()处理程序可以更清晰一点:

$('.Box-title').live({
  mousedown: function() {
    $(window).mousemove(setPos);
  },click: function() {
    $(window).unbind('mousemove',setPos);
  }
});

便说一句,看起来你在页面中有多个id =“Box”元素…确保在这些情况下使用类,在这代码中$(this).parent(‘#Box’)将是$(这个).closest(‘.Box’)代替.

大佬总结

以上是大佬教程为你收集整理的jquery – 单击时禁用mousemove全部内容,希望文章能够帮你解决jquery – 单击时禁用mousemove所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。