我必须通过单击来移动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/

10-12 07:06