我必须通过单击来移动div,再次单击我必须将div停在该位置。现在的问题是:当我想再次移动div时,不激活mousemove事件...我该如何解决?
$('.move_div').live('click', function() {
$('html').on('mousemove', function(e) {
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
$('div').css({'top': y, 'left': x});
});
$("html").live('click', function() {
$('html').off('mousemove');
});
});
最佳答案
var ele = '.move_adv';
var moveBool = false;
$(function () {
$('html').on('mousemove', function (e) {
console.log($(this).width());
if (moveBool == true) {
var x = e.pageX - $(ele).width()/2;
var y = e.pageY - $(ele).height()/2;
$(ele).css({
'top': y,
'left': x
});
}
});
});
$(ele).live('click', function () {
moveBool = !moveBool;
});
http://jsfiddle.net/6y24s/2/
主要逻辑是将div的“可移动性”状态存储在布尔值中。
您还希望进一步完善代码。
关于javascript - 如何重新启动事件mousemove jquery?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20875075/