私はjqueryとjavascriptを初めて使用し、
.click(function(e){
/* some code and creating two vars with the position of the clicked place*/})
これらの2つの変数を返したいのですが、方法がわかりません。
私はjqueryとjavascriptを初めて使用し、
.click(function(e){
/* some code and creating two vars with the position of the clicked place*/})
これらの2つの変数を返したいのですが、方法がわかりません。
jQuery.click
関数は jQuery オブジェクトを返します。したがって、関数内から戻ることはできません。したがって、クリック関数の外側に 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
});
関数は 1 つの値を返します。それがどのように機能するかです。しかし、あなたには選択肢があります。
配列を返すことができます:
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 固有のものではありません ;)
.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;