0

我是 jquery 和 javascript 的新手,我想要一个

 .click(function(e){
  /* some code and creating two vars with the position of the clicked place*/})

我想返回这两个变量,但我不知道如何。

4

3 回答 3

3

jQuery.click函数返回一个 jQuery 对象。所以你不能从函数内部返回。因此,您只需要在 click 函数之外创建一个 var 并将其设置在函数内部,如下所示,

var elPos = {};
$(element).click (function () {
  /* some code and creating two vars with the position of the clicked place*/
  elPos.x = xpos;
  elPos.y = ypos
});
于 2012-12-03T19:12:32.393 回答
2

函数返回一个值。这就是它的工作原理。但是你有选择。

您可以返回一个数组:

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 特有的;)

于 2012-12-03T19:17:56.950 回答
0
 .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;
于 2012-12-03T19:13:49.630 回答