gpt4 book ai didi

javascript - jQuery面向对象创建dom元素并添加事件监听器

转载 作者:行者123 更新时间:2023-11-29 21:11:18 24 4
gpt4 key购买 nike

我有个小问题。我在一个对象中创建了一些元素并且工作正常。但是现在我想添加一些 EventListeners 来执行对象内部的函数,问题是我无法执行函数“setSelection”。 (“this”不是对象的“this”,而是点击函数内事件的“this”)。

function Object() {
this.init = function () {
// delete table
// ...
// set table
$('tr').append('<td id="1">test</td>');

$('td').click(function() {
// execute setSelection
});
}

this.setSelection = function(x) {
alert('You clicked id ' + x);
}
}

$(document).ready(function() {
x = new Object();
x.init();
});

最佳答案

您可以通过将外部作用域中的 this 的引用存储到可以在 click 事件处理程序中使用的变量来解决此问题:

function Object() {
var _this = this;

this.init = function () {
// delete table
// ...
// set table
$('tr').append('<td id="1">test</td>');

$('td').click(function() {
_this.doSomething();
});
}

this.setSelection = function(x) {
alert('You clicked id ' + x);
}
}

关于javascript - jQuery面向对象创建dom元素并添加事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41744666/

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