gpt4 book ai didi

javascript - 如何从 addEventListener 返回值

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:31 24 4
gpt4 key购买 nike

我使用 Javascript 捕捉用户点击链接时的 xy 位置。

我可以让它工作,但我希望它在调用时将这两个值返回给 function init()

我该怎么做?

<script type="text/javascript">

document.addEventListener("DOMContentLoaded", init, false);

function init()
{
var canvas = document.getElementById("canvas");
canvas.addEventListener("mousedown", getPosition, false);

// how can I get the return values here?

}

function getPosition(event)
{
var x = new Number();
var y = new Number();
var canvas = document.getElementById("canvas");

if (event.x != undefined && event.y != undefined)
{
x = event.x;
y = event.y;
}
else
{
x = event.clientX + document.body.scrollLeft +
document.documentElement.scrollLeft;
y = event.clientY + document.body.scrollTop +
document.documentElement.scrollTop;
}

x -= canvas.offsetLeft;
y -= canvas.offsetTop;

alert("x: " + x + " y: " + y); // here can print the correct position

// if I add the two values here, and return them. How can I receive the values in funciton init()
// var clickPosition={"x":x, "y":y};
// return clickPosition;
}

</script>

最佳答案

在你有注释的地方,你将永远无法访问变量,事件还没有发生。

相反,您可以将一个匿名函数传递给事件处理程序,调用您的方法返回一个值并在适当的时候使用它

function init()
{
var canvas = document.getElementById("canvas");
canvas.addEventListener("mousedown", function(event){
var result = getPosition(event);

// result is your return value
}, false);

}

关于javascript - 如何从 addEventListener 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33501696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com