2013-05-26 2 views
0

Мне интересно, как доступ возвращал значения из функции jQuery. Я знаю базовый способ с функцией javascript: "var myVar = myFunction();"Как получить обратное значение из функции jQuery

Но может ли кто-нибудь, пожалуйста, показать мне, как я буду делать это с помощью функции jQuery? Если бы я искал доступ к mousePosX и mousePosY? Я просто не вижу имени функции для ссылки. Спасибо заранее, как всегда!

$("#demoCanvas").mousemove(function(event){ 
     mousePosX = event.pageX; 
     mousePosY = event.pageY; 
     return mousePosX; 
     return mousePosY; 
    });//end mousemove() 
+0

, где вы хотите получить доступ к этим переменным? –

+0

Я хочу использовать значения для другой функции щелчка. Думаю, я мог бы просто захватить позиции в клике(), как в этом mousemove(), но теперь это просто любопытство, так как это может помочь определить, как я пишу это приложение. – NickG77

ответ

1

Вы всегда можете использовать объект для этой цели:

 function pointer(){ 
      this.x; 
      this.y; 
      this.set = function(x,y){this.x=x;this.y=y;} 
     } 
     var p = new pointer(); 
     $(document).mousemove(function(e){ 
      p.set(e.pageX,e.pageY); 
     }); 

Вы можете получить доступ к позиции, как это:

$("button").click(function(){ 
    $("body").append(p.x+" "+p.y+"</br>"); 
}); 
+0

Да, это простой способ избежать повторения кода. Спасибо, Камен. – NickG77

1

Добро пожаловать в мир обратных вызовов.

Вы в значительной степени не значения доступа, возвращаемые из обратного вызова события. Эти обратные вызовы выполняются асинхронно с остальной части вашего кода, поэтому любая обработка, которая зависит от, скажем mousePosX и mousePosY, должна иметь место внутри обратного вызова. Функция обратного вызова, которую вы передаете mousemove, должна полностью выразить код, который должен запускаться при срабатывании этого события.

Вот простой пример: вы можете передать mousePosX другой функции, чтобы функция могла что-то с ней сделать. Обратный вызов не возвращает mousePosX; вызывает другую функцию.

$("#demoCanvas").mousemove(function(event){ 
    var mousePosX = event.pageX; 

    someOtherFunction(mousePosX); 
}); 
+0

Хорошо, так что в основном вы говорите, что при использовании обратного вызова я могу использовать функции для игры с mousePosX, но нет способа вывести mousePosX из среды. Для такого возвращаемого значения я должен использовать обычные функции? – NickG77

+0

спасибо Мэтт. Живи и учись. Я думал, что я просто что-то пропустил, потому что не мог найти способ сделать это. – NickG77

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