2011-11-02 19 views
6

Korzystam z frameworka Dojo, aby pomóc mi w rozwoju JavaScript z przeglądaniem DOM i zarządzaniem zdarzeniami podczas przeglądania.
Do tego ostatniego miałem nadzieję użyć niestandardowego wysyłania zdarzeń między obiektami. Ale nie znajduję niczego na ten temat. Czytam o subskrybowaniu/publikowaniu, ale nie jest to dokładnie to, czego chcę.
Oto, co chciałbym zrobić:Wysyłanie niestandardowych zdarzeń przy użyciu struktury 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); 
    }; 
})(); 

Ktoś może mi pomóc?

Dzięki.

Odpowiedz

3

zwykle zrobić to w następujący sposób: (testowane z 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

Dzięki. Więc musisz wywołać istniejącą funkcję jako identyfikator zdarzenia. Bardziej wykorzystuję system string + handler, ale poradzę sobie z nim. Jeszcze raz dziękuję – mrpx

Powiązane problemy