Salut a tous,
Je me heurte à un petit problème dont je ne vois vraiment pas la raison ni la solution.
J'ai un objet, mettons comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var asso_book_datatables = { 'datatable': function() { return 'lala'; } 'delete_entry': function() { alert(this.datatable()); } };
J'ai ma requete ajax comme ca :
L'idée est relativement simple : je fais un appel ajax en passant ma première fonction en callback, mon callback étant appelé lors du success de la requete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 var callback = asso_book_datatables.delete_entry; $.ajax({ type: 'POST', success: function(data) { callback(); } });
Et bien ca ne marche pas ! L'erreur est "Uncaught TypeError: Object [object DOMWindow] has no method 'datatable'". Effectivement, si depuis ma méthode delete_entry (qui est bien exécutée) j'affiche this, eh bien JS me dit que c'est un objet de type... DOM Window ?? Alors que ca devrait être mon objet asso_book_datatables...
Et, si dans mon appel ajax je remplace callback() par asso_book_datatable.delete_entry(), alors ca marche sans problème !
La question c'est donc : pourquoi est-ce que JS ne veut pas utiliser ma variable callback pour exécuter la méthode de mon objet ? D'où vient ce DOM Windows au milieu de _mon_ objet ? Sachant qu'à d'autres endroits de mon code j'ai ce genre d'appel qui marche très bien.
Merci !
Partager