gpt4 book ai didi

javascript - JS onclick 触发错误的对象

转载 作者:行者123 更新时间:2023-11-29 20:23:31 25 4
gpt4 key购买 nike

我在这里试图做的是将一个 DOM 对象与一个 JS 对象的实例相关联,这将在稍后提供一些有意义的方法;)此时我只想处理我的 JS 对象的点击事件,同时保持它的引用完好无损。

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
<script type="text/javascript">
// my object, which will hold a reference to a single DOM object
obj = function(domobj) {
this.o = domobj;
my = this;
var ref = my.click;
this.o.onclick = ref;

}
// my objects click function
obj.prototype.click = function() {
alert(my.o.innerHTML);
}

// create objects with references
$(document).ready(function() {
o1 = new obj(document.getElementById('b1'));
o2 = new obj(document.getElementById('b2'));
});
</script>

</head>
<body>
<button id="b1">button 1</button>
<button id="b2">button 2</button>
</body>
</html>

预期结果:点击按钮 1 时,应提醒文本“按钮 1”。

当前结果:单击按钮 1 时,会提示文本“按钮 2”。

到目前为止,我发现点击事件触发了错误的 obj 实例,即使 o1 和 o2 保持对其相应 DOM 对象的正确引用。

有什么解决办法吗?

感谢您的帮助!

最好的问候,克莱门斯

最佳答案

my 是一个全局的,所以当点击事件被触发时,它总是引用上次调用返回的对象。

您可以将 my 设为本地并在 obj 构造函数中定义点击函数。

关于javascript - JS onclick 触发错误的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527335/

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