通过单击并拖动div来使用mousemove,mousedown和mouseup

时间:2012-08-20 16:40:39

标签: javascript jquery client-side

我似乎无法让它工作,但我想要做的是能够将某些东西连接到我的鼠标,然后当我mousedown解除绑定然后重新绑定它以移动宽度和高度而不是顶部和左侧。尝试如下:

$(document).mousemove(function(mouseEvent) {
    creationTagBool = true;
    n.show();
    n.css("left", mouseEvent.pageX);
    n.css("top", mouseEvent.pageY);
}).mousedown(function(mouseEvent) {
    if (creationTagBool) {
        $(this).unbind("mousemove");
        creationTagBool = false;
        //draggCon();
        n.css("width", mouseEvent.pageX - n.css("left"));
        n.css("height", mouseEvent.pageY - n.css("top"));
    }

}).mouseup(function(mouseEvent) {
    $(this).unbind("mousedown");
    draggCon();
});​

我其实在想它应该做的事情如下:   mousemove,mousedown解除绑定然后重新绑定mousemove,on mouseup unbind mousem再次移动。

当我输入时,我认为这可能有用,所以我必须快速测试。我的想法如下:

$(document).mousemove(function(mouseEvent) {
    creationTagBool = true;
    n.show();
    n.css("left", mouseEvent.pageX);
    n.css("top", mouseEvent.pageY);
}).mousedown(function(mouseEvent) {
    if (creationTagBool) {
        $(this).unbind("mousemove");
        creationTagBool = false;
        //draggCon();
        //n.css("width", mouseEvent.pageX - n.css("left"));
        //
        $(this).mousemove(function() {
            n.css("width", mouseEvent.pageX - n.css("left"));
            n.css("height", mouseEvent.pageY - n.css("top"));
        }).mouseup(function() {
            $(this).unbind("mousemove");
            draggCon();
        });
    }
});​

1 个答案:

答案 0 :(得分:0)

错误是宽度和宽度的宽度,因此在运行它时,您需要。 mouseEvent.pageX + n.position()。left而不是n.css(“left”)。

当我开始工作时,它看起来很好,虽然有点慢。而不是暂时点击和拖动事件,我只是将其检查为2次点击。