Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30

    mootools e each function

    Salve a tutti ,
    Data la seguenti righe di codice utilizzate con moootools:

    newcard: function(){

    $$('.newobj').each(function(el) {

    el.addEvents({'click': function() {this.pos();
    }}); //chiudo addEvents

    }); //chiudo each
    },

    pos: function(){
    alert('posiziono');

    },

    Qualcuno sa dirmi perchè non riesco a richimare la funzione pos dall'event click?
    se posiziono la chimata this.pos(); fuori dall'each mi funziona.

    Garzie in anticipo

  2. #2
    è una questione di Scope, il fatto è che le function se non hanno indicato il bind vengono tutte interpretate nello scope del chiamante, in questo caso, l'elemento su cui fai click nella funzione dell'onclick e window per la function di each.

    devi usare i bind ed i bindWithEvent:

    codice:
    newcard: function(){
       $$('.newobj').each(function(el) {
          el.addEvents({
              'click': function() {
                  this.pos();
               }.bindWithEvent(this)
          }); //chiudo addEvents
       }.bind(this)); //chiudo each
    },
    pos: function(){
       alert('posiziono');
    },
    Penso funzionerà
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    30
    Grazie così funziona mi sa che devo approfondire meglio l'argomento

  4. #4
    Tra le guide di javascript.html.it c'è un articolo sullo Scope molto chiaro che mi ha aiutato a capirlo
    I DON'T Double Click!

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.