2014-12-13 2 views
0

Так что я пытаюсь сделать сценарий, когда и нажмите, например, «1», а затем нажмите кнопку мыши, чтобы отправить позицию курсора, но у меня есть проблемы с глобальными переменными и функциями, а именно с mX и mYПроблемы с глобальной переменной Javascript и JQuery

$('#A').on("mousemove", function (e) { mX = e.pageX }); 
$('#A').on("mousemove", function (e) { mY = e.pageY }); 
... 
else if (code == 49) {f(vX, vY, mX, mY);} 
... 
function f(vX, vY, mX, mY) { 
$('#A').click(function (e) { 
    var dX = Math.abs(vX - mX); <<< Here is the problem the mX is not defined 
    var dY = Math.abs(vY - mY); 
}); 

Проблемная строка, которую я назвал <<< Я не могу придумать, как ее решить, я сделал переменные в функции глобальными.

Не обращайте внимания на code, vX, vY Эти переменные работают нормально!

+1

Вы понимаете, что вы можете получить '' pageX' и pageY' в обработчик щелчка? – adeneo

+0

О, человек, это много строк кода, которые работают вместе, я сделаю это завтра, теперь я не смогу это сделать, Извините – Szarik

+0

http://jsfiddle.net/1fgwhqj9/ – adeneo

ответ

0

Пожалуйста, обратитесь к How to pass argument to a jquery function through an onClick event?

function f(vX, vY, mX, mY) { 
    $('#A').click({mX:mX, mY:mY}, function (e) { 
     var dX = Math.abs(vX - e.data.mX); 
     var dY = Math.abs(vY - e.data.mY); 
    }); 

надежде, что это хорошо для вас

свиданья

+0

Я думаю, это не очень хорошо, так как обработчик событий имеет доступ только к значениям, которые 'mX' и' mY' были в момент привязки обработчика. –

Смежные вопросы