Skip to content

Instantly share code, notes, and snippets.

@mskeen
Created November 7, 2013 00:35
Show Gist options
  • Save mskeen/7346898 to your computer and use it in GitHub Desktop.
Save mskeen/7346898 to your computer and use it in GitHub Desktop.
javascript: module pattern - prototype
var Toggler = (function() {
var totalTogglers = 0;
var Toggler = function() {
this.linkSelector = ".detail_toggle";
this.detailSelector = ".detail";
this.hiddenClass = "hidden";
this.hideText = "Hide Details";
this.showText = "Show Details";
};
Toggler.prototype = {
init: function() {
var toggler = this;
$(this.linkSelector).on("click", function(event) {
toggler.toggleOnClick(event)
});
},
toggleOnClick: function(event) {
this.$link = $(event.target);
this.$link.text(this.isDetailHidden() ? this.hideText : this.showText);
this.detailElement().toggleClass(this.hiddenClass);
event.preventDefault();
},
detailElement: function() {
return this.$link.parent().find(this.detailSelector);
},
isDetailHidden: function() {
return this.detailElement().hasClass(this.hiddenClass);
}
};
return Toggler;
})();
$(function() {
var toggler = new Toggler();
toggler.init();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment