So I don't think state should be in the DOM. Abstractly, I think what I would do looks something like

    function MyAlarm() {
    }
    MyAlarm.prototype = {
      _allMyPrivateData: ...,

      render: function() {
        var el = this._getElement();
        // put el in the dom
        el.addEventListener('click', function(evt) {
          // this._allMyPrivateData is our data
        }.bind(this));
      },

      /**
       * @return dom representation of me.
       */
      _getElement: function() {
      }
    }