只有在按下鼠标时才需要实现鼠标移动事件。
只有在鼠标按下并移动鼠标时才需要执行“OK Moved”。
我使用了这段代码
$(".floor").mousedown(function() {
$(".floor").bind('mouseover',function(){
alert("OK Moved!");
});
})
.mouseup(function() {
$(".floor").unbind('mouseover');
});
答案 0 :(得分:14)
使用mosemove
事件。
来自mousemove
和mouseover
jquery docs:
当鼠标指针在元素内移动时,
mousemove
事件被发送到元素。当鼠标指针进入元素时,
mouseover
事件被发送到元素。
示例:(检查控制台输出)
$(".floor").mousedown(function () {
$(this).mousemove(function () {
console.log("OK Moved!");
});
}).mouseup(function () {
$(this).unbind('mousemove');
}).mouseout(function () {
$(this).unbind('mousemove');
});
答案 1 :(得分:0)
在纯JavaScript中,您可以通过以下方式实现
function mouseMoveWhilstDown(target, whileMove) {
var endMove = function () {
window.removeEventListener('mousemove', whileMove);
window.removeEventListener('mouseup', endMove);
};
target.addEventListener('mousedown', function (event) {
event.stopPropagation(); // remove if you do want it to propagate ..
window.addEventListener('mousemove', whileMove);
window.addEventListener('mouseup', endMove);
});
}
然后使用
的功能mouseMoveWhilstDown(
document.getElementById('move'),
function (event) { console.log(event); }
);
(nb:在上面的示例中,您不需要该功能-您可以将其称为mouseMoveWhilstDown(document.getElementById('move'), console.log)
,但除了将其输出到控制台之外,您可能还想对其进行其他操作!)>