我是新来的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