J'ai un petit problème. J'ai créé un élément dans un objet et cela fonctionne bien. Mais maintenant je veux ajouter des EventListeners pour exécuter une fonction interne à mon objet, le problème est que je ne peux pas exécuter la fonction "setSelection". ("ceci" n'est pas le "ceci" de l'objet, mais le "ceci" de l'événement à l'intérieur de la fonction de clic).jQuery a créé l'élément dom et ajouté l'écouteur d'événement
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();
});
cela peut entraîner des problèmes pour surcharger la fonction 'Object', si vous savez ce que vous faites, très bien, ou bien, vous devriez le renommer. Pour votre problème, ce qui provoque cela est que les rappels d'événements sont exécutés dans le contexte global. C'est pourquoi les réponses proposées fonctionnent, vous devez soit stocker le contexte dans un var, ou utiliser des fonctions comme 'bind',' apply' ou tel quel pour récupérer le contexte – Kaddath