Основной вопрос: у меня есть функция с несколькими аргументами. Как я могу получить позицию мыши внутри этой функции? Вот какой-то код, чтобы прояснить, что я имею в виду.Получить позицию мыши в функции с дополнительными аргументами
$(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];
}
Это не работает, функция возвращает «неперехваченный TypeError: Не удается прочитать свойство„pageX“неопределенный».
В то время как, если я обменять часть в функции «checkDragDropEdit» к этому, я могу получить координаты:
function checkDragDropEdit(e) {
...
var oldMousePos = [e.pageX,e.pageY];
...
}
Может кто-нибудь объяснить мне, почему функции ведут себя, как это и как я могу правильно извлечь положение мыши внутри верхней функции? Причина в том, что я хотел бы передать больше аргументов этой функции, но все же могу получить позицию мыши после ее выполнения.
спасибо
Спасибо большое ... Я должен был читать немного больше на объект события - я был совершенно неправильно, как это работает, и как она передается вместе. Спасибо Sushanth. – tricon
Могу я попросить еще одну вещь? Я не могу разобраться в одном: почему это не работает: function checkDragDropEdit (e) {(function (e) {console.log (e)})(); } но это: функция checkDragDropEdit (e) {var oldMousePos = mousePos (e); function mousePos (e) {console.log (e)}} Извините за эти основные вопросы;) – tricon
Это так логично ... спасибо тонну! – tricon