基本问题:我有一个具有多个参数的函数。如何从该函数内部检索鼠标位置?这是一些代码来阐明我的意思。
$(element).on("mousedown",checkDragDropEdit);
function checkDragDropEdit() {
if($('.editing').length > 0) {
$('.editing').css('border','3px solid red');
return
} else {
var oldMousePos = checkMousePos();
$(this).bind("mouseup",function(e) {
var newMousePos = [e.pageX,e.pageY];
if(oldMousePos[0] == newMousePos[0] && oldMousePos[1] == newMousePos[1]) {
//makeEditable($(this));
edit($(this));
$(this).off("mousedown",checkDragDropEdit);
}
$(this).unbind("mouseup");
});
}
}
function checkMousePos(e) {
return [e.pageX,e.pageY];
}
这不起作用,函数返回“Uncaught TypeError: Cannot read property 'pageX' of undefined”。
然而,如果我将“checkDragDropEdit”函数中的一部分交换为此,我可以获得坐标:
function checkDragDropEdit(e) {
...
var oldMousePos = [e.pageX,e.pageY];
...
}
有人可以向我解释为什么这些函数会这样,以及如何正确检索上部函数中的鼠标位置吗?原因是,我想向该函数传递更多参数,但在执行后仍然能够检索鼠标位置。
非常感谢