gpt4 book ai didi

jquery - 单击时禁用鼠标移动

转载 作者:行者123 更新时间:2023-12-03 22:58:10 28 4
gpt4 key购买 nike

我正在尝试拖放,这是我的代码:

$('.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', top: e.pageY - 15, left: e.pageX - 125 });
}
});

在鼠标按下时,它应该通过移动鼠标来启动拖动效果,之后,如果我想将框停靠/放置在我想要的位置,我单击它,它应该禁用移动,但如果我单击它,它不会停止移动 - 只是继续跟随我的鼠标。如何停止拖动?

最佳答案

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

function setPos(e) {
//can be $('#box') in this case...
$(this).parent('#box').css({ cursor: 'move', top: e.pageY - 15, 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') 将改为 $(this).closest('.box')

关于jquery - 单击时禁用鼠标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4587632/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com