How do i create custom event in javascript with out using DOM -


i have 2 objects. objeca triggers event e , objectb has listen event triggered objecta (e). objecta sends when property in changes @ run time.

thanks in advance.

you can use pubsub pattern

var pubsub = {};    (function(myobject) {      // storage topics can broadcast    // or listened    var topics = {};      // topic identifier    var subuid = -1;      // publish or broadcast events of interest    // specific topic name , arguments    // such data pass along    myobject.publish = function(topic, args) {        if (!topics[topic]) {        return false;      }        var subscribers = topics[topic],        len = subscribers ? subscribers.length : 0;        while (len--) {        subscribers[len].func(topic, args);      }        return this;    };      // subscribe events of interest    // specific topic name ,    // callback function, executed    // when topic/event observed    myobject.subscribe = function(topic, func) {        if (!topics[topic]) {        topics[topic] = [];      }        var token = (++subuid).tostring();      topics[topic].push({        token: token,        func: func      });      return token;    };      // unsubscribe specific    // topic, based on tokenized reference    // subscription    myobject.unsubscribe = function(token) {      (var m in topics) {        if (topics[m]) {          (var = 0, j = topics[m].length; < j; i++) {            if (topics[m][i].token === token) {              topics[m].splice(i, 1);              return token;            }          }        }      }      return this;    };  }(pubsub));        implementation:    // simple message handler      // simple message logger logs topics , data received through our    // subscriber    var messagelogger = function(topics, data) {      console.log("logging: " + topics + ": " + data);    };    // subscribers listen topics have subscribed ,  // invoke callback function (e.g messagelogger) once new  // notification broadcast on topic  var subscription = pubsub.subscribe("inbox/newmessage", messagelogger);    // publishers in charge of publishing topics or notifications of  // interest application. e.g:    pubsub.publish("inbox/newmessage", "hello world!");    // or  pubsub.publish("inbox/newmessage", ["test", "a", "b", "c"]);    // or  pubsub.publish("inbox/newmessage", {    sender: "hello@google.com",    body: "hey again!"  });    // can unsubscribe if no longer wish our subscribers  // notified  pubsub.unsubscribe(subscription);    // once unsubscribed, example won't result in our  // messagelogger being executed subscriber is`enter code here`  // no longer listening  pubsub.publish("inbox/newmessage", "hello! still there?");


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -