diff options
| author | mo khan <mo@mokhan.ca> | 2017-03-05 13:14:56 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2017-03-05 13:14:56 -0700 |
| commit | 08622e51537256ad8972e8c58f62fcd9008ceab7 (patch) | |
| tree | f0009b44a855d06d0af43804c2ace37ca0d78b4b | |
| parent | 8ab9277103074339972f17f55a3c5fd222d59e23 (diff) | |
define api for loading behaviours.
4 files changed, 20 insertions, 7 deletions
diff --git a/app/assets/javascripts/application.js.coffee b/app/assets/javascripts/application.js.coffee index 9445d8c..0dec3be 100644 --- a/app/assets/javascripts/application.js.coffee +++ b/app/assets/javascripts/application.js.coffee @@ -31,7 +31,10 @@ window.Stronglifters ?= {} $(document).on 'turbolinks:load', () => new Stronglifters.Startup().start() + Stronglifters.Behaviour.install() for element in $("[data-autovue]") window.app = new Vue el: element data: gon + for element in $("[data-autoview-name]") + Stronglifters.Autoview.install(element) diff --git a/app/assets/javascripts/lib/autoview.js.coffee b/app/assets/javascripts/lib/autoview.js.coffee index 8957248..91c79f6 100644 --- a/app/assets/javascripts/lib/autoview.js.coffee +++ b/app/assets/javascripts/lib/autoview.js.coffee @@ -25,7 +25,3 @@ class Stronglifters.Autoview extends Backbone.View el: element $el: $element view.render() - -document.addEventListener "turbolinks:load", -> - for element in $("[data-autoview-name]") - Stronglifters.Autoview.install(element) diff --git a/app/assets/javascripts/lib/behaviour.js.coffee b/app/assets/javascripts/lib/behaviour.js.coffee new file mode 100644 index 0000000..c2a5183 --- /dev/null +++ b/app/assets/javascripts/lib/behaviour.js.coffee @@ -0,0 +1,11 @@ +class Stronglifters.Behaviour + @events: {} + + @on: (event) -> + @events[event] ?= [] + @events[event].push(this) + + @install: () -> + for event of @events + for behaviour in @events[event] + new behaviour().execute() diff --git a/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee b/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee index 5d11dcf..b12a682 100644 --- a/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee +++ b/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee @@ -1,3 +1,6 @@ -$(document).on "turbolinks:load", () -> - $(".nav-toggle").on "click", (event) -> - $(".nav-menu").toggleClass "is-active" +class HamburgerMenu extends Stronglifters.Behaviour + @on "turbolinks:load" + + execute: -> + $(".nav-toggle").on "click", (event) -> + $(".nav-menu").toggleClass "is-active" |
