2013-07-22 6 views
0

Я следующий jQuery функцииJQuery - Как вернуть значение из функции JQuery (не Аякс вызова)

jQuery(document).ready(function(){ 
    jQuery(document).mousemove(function(e){ 
     alert(e.pageX +', '+ e.pageY); 
    }); 
}); 

Я хочу, чтобы вернуть эти два значения (e.pageX и e.pageY) в другой функции. Как я могу это сделать?

Я пытался с этим

function getMousePosition(e) 
{ 
    var tt = jQuery(document).ready(function(){ 
     jQuery(document).mousemove(function(e){ 
      return (e.pageX +', '+ e.pageY); 
     }); 
    }); 
    alert(tt); 
} 

getMousePosition(e) будет вызываться из другой функции.

Может ли кто-нибудь помочь в этом?

Любая помощь будет оценена по достоинству.

Edit:

Ниже приведен сценарий: 1. Я нажимаю на элемент на веб-странице. 2. Открывает всплывающее меню и открывает диалоговое окно jQuery. 2. В открывшемся диалоговом окне jQuery есть изображение/значок, теперь, когда я нажимаю на эту иконку, кроме того, открывается всплывающее меню. Теперь, когда я нажимаю на значок в диалоговом окне jQuery, он возвращает отрицательное значение в первый раз. Второй раз он возвращает положительное значение.

+0

Для событийного кода, как это вы обычно кладете код в обработчик события, или вызвать функцию из обработчика события. Что вы пытаетесь сделать с этими данными? –

+0

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

+0

В вики-файле jQuery есть пример автоматического обновления: http://docs.jquery.com/Tutorials:Mouse_Position, если вы перемещаете данные, которые являются хорошим началом. – stefancarlton

ответ

2

Попробуйте сделать свой обработчик и присвоить ему переменную для хранения результатов. После этого вы можете манипулировать переменной, как вам нравится

var position = {}, // store position here 
    mouseMoveHandler = function(e){ 
     position.pageX = e.pageX; 
     position.pageY = e.pageY; 

     myFunction(); // you have to call your function after the position results are populated 
    }; 

// your function that handles the results 
var myFunction = function(){ 
    alert(position.pageX+', '+position.pageY); 
}; 

// give your handler to mousemove 
jQuery(document).ready(function(){ 
    jQuery("#target").mousemove(mouseMoveHandler); 
}); 

// every time mousemove is triggered, the results will be in 'position' variable 

пример ->http://jsfiddle.net/eXVKg/

+0

Когда я использую 'alert (position.pageX);' после вызова функции 'jQuery', я получаю' undefined' в качестве значения предупреждения. – NullPointer

+0

Не забывайте, что здесь все асинхронно. Возможно, вы «предупреждаете» vaiable, прежде чем он заселен. Я приведу вам пример с предупреждением. – AntouanK

+0

Да. Пожалуйста ... умираю за это :) – NullPointer

-2
jQuery(document).ready(function(){ 
    jQuery(document).mousemove(function(e){ 
     MouseCallback(e);   
    }); 
}); 

function MouseCallback(e) { 
    alert(e.pageX+", "+y:e.pageY); 
    // Do other things. 
} 
Смежные вопросы