2013-07-22 66 views
0

返回一個值,我有以下jQuery功能jQuery的 - 如何從jQuery函數(不是一個Ajax調用)

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

我想在另一個函數返回這兩個值(e.pageXe.pageY)。我怎樣才能做到這一點?

我這個

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

getMousePosition(e)試圖將可以從另一個函數調用。

任何人可以在幫助呢?

任何幫助,將不勝感激。

編輯:

下面是一個情景: 1.我點擊網頁上的元素。 2.打開一個彈出菜單並打開一個jQuery對話框。 2.打開的jQuery對話框中有一個圖像/圖標,現在當我單擊該圖標時,此外它會打開一個彈出式菜單。現在,當我點擊jQuery對話框中的圖標時,它首次返回負值。第二次它返回正值。

+0

對於這樣的事件驅動代碼,你通常把你的代碼在事件處理程序,或調用一個函數來自事件處理程序。你想用這些數據做什麼? – 2013-07-22 06:29:06

+0

我想使用這些值分配給它的調用函數的變量,然後想要使用它來顯示基於鼠標位置的一個彈出窗口。 – NullPointer

+0

jQuery的wiki有一個例子自動更新: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

當我在'jQuery'函數調用後使用'alert(position.pageX)'時,我得到'undefined'作爲alert值。 – NullPointer

+0

不要忘記,這裏的一切都是異步的。也許你會在人口稠密之前「提醒」這個可能性。我會給你一個警戒的例子。 – 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. 
}