将事件和变量传递给jQuery中的mousemove事件处理程序

时间:2018-04-05 13:50:01

标签: javascript jquery typescript

我尝试使用jQuery mousedown / move / up事件的组合创建一个拖动函数,在此期间我试图将mousedown事件的起始(光标)位置传递给mousemove事件处理程序,但我收到错误

  

类型mousemove的参数不能分配给类型' PlainObject ...'

这是我的代码......

module controls.draganddrop {

    export function init() {
        $("#mainContent").on("mousedown", ".itemList > ul > li > p", mouseDown);
        $("#mainContent").on("mouseup", ".itemList > ul > li > p", mouseUp);
    }

    function mouseDown(e) {
        var startPosition: object = { x: e.pageX, y: e.pageY };
        $(".itemList > ul > li > p").on("mousemove", mouseMove(event, startPosition));
    }

    function mouseMove(e, startPosition) {
        console.log("pageX: " + e.pageX + ", pageY: " + e.pageY);
    }

    function mouseUp(e) {
        $(".itemList > ul > li > p").off("mousemove", mouseMove);
    }
}

错误发生在" mousemove"在mouseDown函数内。很明显,我在jQuery文档和/或类似问题的解决方案中误解了一些内容,我做错了什么?

1 个答案:

答案 0 :(得分:0)

试试这个

$(".itemList > ul > li > p").on("mousemove", function(event){ mouseMove(event, startPosition)});