我是新來的jQuery和JavaScript,我想在一個jquery click()函數返回兩個變量?
.click(function(e){
/* some code and creating two vars with the position of the clicked place*/})
,我想退掉這兩瓦爾,但我不知道怎麼辦。
我是新來的jQuery和JavaScript,我想在一個jquery click()函數返回兩個變量?
.click(function(e){
/* some code and creating two vars with the position of the clicked place*/})
,我想退掉這兩瓦爾,但我不知道怎麼辦。
jQuery .click
函數返回一個jQuery對象。所以你不能從函數內部返回。所以,你只需要創建點擊功能之外的變種,並將其設置像下面的函數內部,
var elPos = {};
$(element).click (function() {
/* some code and creating two vars with the position of the clicked place*/
elPos.x = xpos;
elPos.y = ypos
});
@BoazKatzir - 使用Vega的答案。但爲了獲得座標,將'e'傳遞給像你的例子那樣的函數,並用'e.pageX;'和'ypos'替換'xpos;''e.pageY;' – Aust
謝謝你,它的工作原理! –
.click(function(e) {
var x = e.pageX;
var y = e.pageY;
return [x, y];
});
如果有喜歡的IMG,那麼你可以試試這個元素...
var x = e.pageX - $(this).offset().left;
var y = e.pageY - $(this).offset().top;
函數返回一個值。這就是它的工作原理。但你有選擇。
可以返回的數組:
function foobar() {
var x = "foo";
var y = "bar";
return [x, y];
}
還可以返回一個對象:
function foobar() {
var x = "foo";
var y = "bar";
return {x: x, y: y};
}
也可以解決對於具有在全球範圍內的一對變量:
var x, y;
function foobar() {
x = "foo";
y = "bar";
}
或傳遞對象/數組:
function foobar (obj) {
obj.x = "foo";
obj.y = "bar";
}
順便說一句,這一切都不是的jQuery特異性)
'返回{X:e.pageX,Y:e.pageY};' – Shmiddty
創建在單擊功能閉合範圍變量中,並將在該關閉內的任何地方提供。 –
從mouseEvent的屬性中挑選:https://developer.mozilla.org/en-US/docs/DOM/MouseEvent – rjz