Javascript-JQuery: 鼠标抬起时停止动作?
Javascript-JQuery: stop action when mouse is up?
这是我的一些代码:
$(".slider").mousedown(function(cursor) {
$(".slider").mousemove(function(cursor) {
$(this).css({transform:'rotate('+ degrees(cursor) +'deg)'});
});
});
我想让滑块只在鼠标按下时移动,当鼠标抬起时停止。但就我而言,它一直在移动!有任何想法吗?谢谢!
您通常不应将事件处理程序绑定到另一个事件处理程序中,在这种情况下,mousemove
事件处理程序在绑定后不会停止工作,只是因为鼠标不再按下,一次绑定了,绑定了。
只使用标志并检查
会更容易
$(".slider").on({
mousedown: function() {
$(this).data('mouse_is_down', true);
},
mouseup : function() {
$(this).data('mouse_is_down', false);
},
mousemove : function(cursor) {
if ( $(this).data('mouse_is_down') ) {
$(this).css({
transform: 'rotate('+ degrees(cursor) +'deg)'
});
}
});
});
cursor
看起来像这里的 event
,所以不太确定它是如何工作的?
添加到您的代码
$(".slider").mouseup(function(cursor) {
$(".slider").unbind("mousemove");
});
这是我的一些代码:
$(".slider").mousedown(function(cursor) {
$(".slider").mousemove(function(cursor) {
$(this).css({transform:'rotate('+ degrees(cursor) +'deg)'});
});
});
我想让滑块只在鼠标按下时移动,当鼠标抬起时停止。但就我而言,它一直在移动!有任何想法吗?谢谢!
您通常不应将事件处理程序绑定到另一个事件处理程序中,在这种情况下,mousemove
事件处理程序在绑定后不会停止工作,只是因为鼠标不再按下,一次绑定了,绑定了。
只使用标志并检查
会更容易$(".slider").on({
mousedown: function() {
$(this).data('mouse_is_down', true);
},
mouseup : function() {
$(this).data('mouse_is_down', false);
},
mousemove : function(cursor) {
if ( $(this).data('mouse_is_down') ) {
$(this).css({
transform: 'rotate('+ degrees(cursor) +'deg)'
});
}
});
});
cursor
看起来像这里的 event
,所以不太确定它是如何工作的?
添加到您的代码
$(".slider").mouseup(function(cursor) {
$(".slider").unbind("mousemove");
});