Avatar billede eikhorsholm Nybegynder
13. november 2008 - 14:04 Der er 9 kommentarer

Problemer med addEventListener.

Jeg har en funktion som søger i en tabel når man skriver i et tekstfelt.
Det virker selvfølgelig fint i FF men ikke i IE.
Den fejler med at elementet ikke understøtter "property or method":

        if(document.addEventListener) {
            element.addEventListener('keyup', value_update, false);
        }
        // IE version
        else if(document.attachEvent) {
            element.attachEvent('onkeyup', value_update.bind(element));
        }
Avatar billede olebole Juniormester
13. november 2008 - 14:26 #1
<ole>

Det kræver, du har defineret en metode 'bind' på value_update's Function objekt - eller har prototyped den på det globale Function objekt

/mvh
</bole>
Avatar billede olebole Juniormester
13. november 2008 - 14:27 #2
Har du ikke det, kan du f.eks. skrive:
    element.attachEvent('onkeyup', function(){value_update(element)));
Avatar billede eikhorsholm Nybegynder
13. november 2008 - 14:29 #3
hmm, min update_index ser således ud:
    function value_update(event) {
        var new_value = this.value;
        if (update_list) update_list(new_value);
    }
Avatar billede olebole Juniormester
13. november 2008 - 14:29 #4
Hov, der var vist en parentes afslutning for meget - og (som altid ... hehe) en Tuborg for lidt:
    element.attachEvent('onkeyup', function(){value_update(element)});
Avatar billede olebole Juniormester
13. november 2008 - 14:30 #5
Jamen, hvis funktionen ser sådan ud, kan du vel bare:
    element.attachEvent('onkeyup', value_update);
Avatar billede eikhorsholm Nybegynder
13. november 2008 - 14:32 #6
Hvis jeg skriver:
element.attachEvent('onkeyup', function(){value_update(element)});
så crasher IE: Operation aborted!
Avatar billede eikhorsholm Nybegynder
13. november 2008 - 14:32 #7
Hvis jeg bare skriver:
element.attachEvent('onkeyup', value_update);
så crasher IE også.

(den crasher ikke, men kan slet ikke åbne siden)
Avatar billede olebole Juniormester
13. november 2008 - 14:45 #8
Tjek denne kode:

<input id="foo" type="text" value="HeyHep">

<script type="text/javascript">
function update_list(sVal) {
    alert(sVal);
}
function value_update(event) {
    var new_value = this.value;
    if (update_list) update_list(new_value);
}
var oElm = document.getElementById("foo");
oElm.attachEvent("onclick", function(){value_update.apply(oElm, [event])});
</script>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester