[POO] Méthode d'objet inappelable
Salut!
J'essaie pour la première fois de créer un objet javascript.
Je suis au courant que la POO n'est pas vraiment applicable à ce language de prog, je n'essaie pas de réinventer la lune, mais je voulais pouvoir quand-même instancier un objet et faire appel à une de ses méthodes.
voici mon objet
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
function suggestionBox(nbrItems, divElement, targetTextBox) {
alert(nbrItems);
this.nbrItems=nbrItems;
this.divElement=divElement;
this.targetTextBox=targetTextBox;
this.curPointer=0;
this.selectionPointer=0;
function addSuggestion(name) {
alert('salut');
if (curPointer<nbrItems) {
curPointer++;
this.divElement.innerHTML+="<div id='suggestion"+curPointer+"' class='option'>"+name+"</div>";
}
}
function moveUpSelection() {
if (selectionPointer>1) {
selectionPointer--;
document.getElementById("suggestion"+selectionPointer).class='selectedoption';
}
}
function moveDownSelection() {
if (selectionPointer<nbrItems) {
selectionPointer++;
document.getElementById("suggestion"+selectionPointer).class='selectedoption';
}
}
function clear() {
this.divElement.innerHTML="";
this.curPointer=0;
}
function show() {
alert('test');
this.divElement.style.display='block';
}
function hide() {
this.divElement.style.display='none';
}
} |
J'ai ensuite fait une page de test ou j'inclus toutes les références nécessaires.
et je mets le code suivant:
Code:
1 2 3 4 5 6 7 8 9
| <div id='mySuggestionDiv' class='suggestion' style='display:none'></div>
<input type='text' name='myTextBox' id='myTextBox' onKeyPress="mySugBox.show();alert('bonjour');"/>
<script language='JavaScript'>
var mySugBox;
mySugBox=new suggestionBox(5, document.getElementById('mySuggestionDiv'), document.getElementById('myTextBox'));
alert('part1');
mySugBox.show();
alert('ok');
</script> |
Le proglème, c'est que j'ai le message "part1" mais pas "ok".
En fait, la méthode show() ne s'exécute pas....
pourquoi???
merci d'avance