少し問題があります。私はオブジェクト内にいくつかの要素を作成しましたが、うまくいきます。しかし、今は私のオブジェクトの内部で関数を実行するためにいくつかのEventListenersを追加したいのですが、問題は "setSelection"という関数を実行できないことです。 (「this」はオブジェクトの「this」ではなく、クリック機能内のイベントの「this」です)。jQueryオブジェクト指向のDOM要素を作成し、イベントリスナーを追加
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();
});
「Object」関数をオーバーライドする上で問題が発生する可能性があります。あなたがやっていることがわかっていれば、名前を変更する必要があります。問題の原因は、イベントコールバックがグローバルコンテキストで実行されることです。これが提案された答えが働く理由です。あなたはvarにコンテキストを格納するか、コンテキストを返すために 'bind'、' apply'などの関数を使う必要があります – Kaddath