Skip to content

Instantly share code, notes, and snippets.

@alexspeller
Forked from stevekane/gist:6356006
Last active November 27, 2015 10:44
Show Gist options
  • Save alexspeller/92b569851665faac92de to your computer and use it in GitHub Desktop.
Save alexspeller/92b569851665faac92de to your computer and use it in GitHub Desktop.
#original attribution https://gist.github.com/alexspeller/6251054 & https://gist.github.com/stevekane/6356006
App.ClickElsewhereMixin = Ember.Mixin.create
#use this method hook to define your desired behavior
onClickElsewhere: Ember.K
#bound version of our instance method
clickHandler: Em.computed ->
Em.run.bind @, 'onClickElsewhere'
#logic for determining of a click has landed anywhere but our view
elsewhereHandler: (e) ->
element = @get "element"
$target = $ e.target
thisIsElement = $target.closest(element).length is 1
unless thisIsElement then @onClickElsewhere event
#attach event listener to window when view in DOM
setupClickEvent: Em.on 'didInsertElement', ->
$(window).on "click", @get "clickHandler"
#remove window event listener when view removed from DOM
teardownClickEvent: Em.on 'willDestroyElement', ->
$(window).off "click", @get "clickHandler"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment