2011-11-02 9 views
6

Utilizzo il framework Dojo per aiutarmi nel mio sviluppo di Javascript con la manipolazione del DOM cross-browsing e la gestione degli eventi.
Per questo ultimo speravo di utilizzare l'invio di eventi personalizzati tra gli oggetti. Ma non trovo nulla su questo. Ho letto di iscriviti/pubblica, ma non è esattamente quello che voglio.
Ecco quello che avrei voluto fare:Invio di eventi personalizzati con il framework Dojo

var myObject = new CustomObject(); 
dojo.connect(myObject, 'onCustomEvent', function(argument) { 
    console.log('custom event fired with argument : ' + argument); 
}); 


var CustomObject = (function() { 
    CustomObject = function() { 
     // Something which should look like this 
     dojo.dispatch(this, 'onCustomEvent', argument); 
    }; 
})(); 

Qualcuno mi potrebbe aiutare?

Grazie.

risposta

3

faccio di solito in questo modo: (testato con Dojo 1.3.2)

dojo.declare("CustomObject", null, { 
    randomFunction: function() { 
     // do some processing 

     // raise event 
     this.onCustomEvent('Random Argument'); 
    }, 

    onCustomEvent: function(arg) { 
    } 
}); 

var myObject = new CustomObject(); 
dojo.connect(myObject, 'onCustomEvent', function(argument) { 
    console.log('custom event fired with argument : ' + argument); 
}); 


// invoke the function which will raise the custom event 
myObject.randomFunction(); 
+0

Grazie. Quindi devi chiamare una funzione esistente come identificatore di un evento. Sono più utile con il sistema string + handler, ma mi occuperò di esso. Grazie ancora – mrpx

Problemi correlati