Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    86

    removeEventListner e detach. Non vanno aiuto

    Ho bisogno di rimuovere un listner specifico e farlo sia per FF che per IE quindi rispettiva ho pensato di utilizzare una funzione che con una sistema di selezione del metodo del tipo (IF e ELSE) selezioni il metodo più giusto a seconda del browser. Detto ciò purtroppo anche dopo vari tentavi devo dire ho dovuto riscontrare che non funziona con nessuno dei due browser e rispettivi metodi. quindi sbaglio sicurament equalcosa. Vi ringrazio per il mal di testa che vi farete venire per aiutarmi, tienetemi sempre a vostra disposzione.

    Ecco il codice:

    ASSOCIO L'EVENTO AL LISTNER (un campo di testo babbissimo) CON APOSITA FUNZONE (addEventListner e attachEvent) (riesce perfettamente)

    addEvent(field, "blur", (function(field,Lact){return function(){lister(field,Lact)}})(field,Lact));


    TENTO DI RIMUOVERE L'EVENTO CON APPOSITA FUNZIONE (removeEventListner e detach) (non riesce)

    removeEvent(Lfield,"blur",lister(Lfield,capLact));

    NB. ovviamente ho fatto in modo da far corrispondere le due variabili in eredità alla funzione lister

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il punto e' che tecnicamente non stai cercando di rimuovere esattamente la stessa funzione che hai aggiunto

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    86
    Quindi quale potrebbe essere la soluzione?

    potrei mettere la funzione dentro una variabile in modo da salvarla per poi eliminarla in un secondo tempo?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    86

    Soluzione

    Ecco la soluzione a questo piccolo rompicapo.

    Esattamente come mi faceva notare Xinod quando vado a richiamare la cancellazione del listner, nonostante i miei "sforzi" non riesco a riproporre esattamente la funzione originariamente associata. Dunque che si fa? Bene è molto semplice, si crea un contenitore dove si salva la funzione al momento dell'associazione (addEventListner o attachEvent) e la si richiama al momneto della cancellazione (removeEventListner o detachEvent), segue un piccolo esempio.


    ...

    this.mioListner = function(varibile/i)funzioneDaMontare(variabile/i);
    addEvent(click, mioListner, false);
    ...

    removeEvent(click,mioListner);
    .

    Mi scuso se vi ho scomodato per così poco a pensarci è al quanto banale. Ma dato che ormai il POST è aperto pongo un altra domanda, sempre con il vostro consenso dato che il materiale in rete approposito è scarso. Vorrei sapere se è possibile estrarre in qualche modo una lista dei listner applicati e se lo è con che sintassi si potrebbe ottenere il risultato. Grazie ancora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.