Skip to content

Commit

Permalink
let coffeescript handle function scope
Browse files Browse the repository at this point in the history
  • Loading branch information
koenpunt committed Nov 27, 2016
1 parent 204ed8d commit 5dd350a
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 87 deletions.
72 changes: 36 additions & 36 deletions coffee/chosen.jquery.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -71,37 +71,37 @@ class Chosen extends AbstractChosen
@form_field_jq.trigger("chosen:ready", {chosen: this})

register_observers: ->
@container.bind 'touchstart.chosen', (evt) => this.container_mousedown(evt); return
@container.bind 'touchend.chosen', (evt) => this.container_mouseup(evt); return

@container.bind 'mousedown.chosen', (evt) => this.container_mousedown(evt); return
@container.bind 'mouseup.chosen', (evt) => this.container_mouseup(evt); return
@container.bind 'mouseenter.chosen', (evt) => this.mouse_enter(evt); return
@container.bind 'mouseleave.chosen', (evt) => this.mouse_leave(evt); return

@search_results.bind 'mouseup.chosen', (evt) => this.search_results_mouseup(evt); return
@search_results.bind 'mouseover.chosen', (evt) => this.search_results_mouseover(evt); return
@search_results.bind 'mouseout.chosen', (evt) => this.search_results_mouseout(evt); return
@search_results.bind 'mousewheel.chosen DOMMouseScroll.chosen', (evt) => this.search_results_mousewheel(evt); return

@search_results.bind 'touchstart.chosen', (evt) => this.search_results_touchstart(evt); return
@search_results.bind 'touchmove.chosen', (evt) => this.search_results_touchmove(evt); return
@search_results.bind 'touchend.chosen', (evt) => this.search_results_touchend(evt); return

@form_field_jq.bind "chosen:updated.chosen", (evt) => this.results_update_field(evt); return
@form_field_jq.bind "chosen:activate.chosen", this.activate_field
@form_field_jq.bind "chosen:open.chosen", (evt) => this.container_mousedown(evt); return
@form_field_jq.bind "chosen:close.chosen", (evt) => this.close_field(evt); return

@search_field.bind 'blur.chosen', (evt) => this.input_blur(evt); return
@search_field.bind 'keyup.chosen', (evt) => this.keyup_checker(evt); return
@search_field.bind 'keydown.chosen', (evt) => this.keydown_checker(evt); return
@search_field.bind 'focus.chosen', (evt) => this.input_focus(evt); return
@search_field.bind 'cut.chosen', (evt) => this.clipboard_event_checker(evt); return
@search_field.bind 'paste.chosen', (evt) => this.clipboard_event_checker(evt); return
@container.bind 'touchstart.chosen', this.container_mousedown
@container.bind 'touchend.chosen', this.container_mouseup

@container.bind 'mousedown.chosen', this.container_mousedown
@container.bind 'mouseup.chosen', this.container_mouseup
@container.bind 'mouseenter.chosen', this.mouse_enter
@container.bind 'mouseleave.chosen', this.mouse_leave

@search_results.bind 'mouseup.chosen', this.search_results_mouseup
@search_results.bind 'mouseover.chosen', this.search_results_mouseover
@search_results.bind 'mouseout.chosen', this.search_results_mouseout
@search_results.bind 'mousewheel.chosen DOMMouseScroll.chosen', this.search_results_mousewheel

@search_results.bind 'touchstart.chosen', this.search_results_touchstart
@search_results.bind 'touchmove.chosen', this.search_results_touchmove
@search_results.bind 'touchend.chosen', this.search_results_touchend

@form_field_jq.bind 'chosen:updated.chosen', this.results_update_field
@form_field_jq.bind 'chosen:activate.chosen', this.activate_field
@form_field_jq.bind 'chosen:open.chosen', this.container_mousedown
@form_field_jq.bind 'chosen:close.chosen', this.close_field

@search_field.bind 'blur.chosen', this.input_blur
@search_field.bind 'keyup.chosen', this.keyup_checker
@search_field.bind 'keydown.chosen', this.keydown_checker
@search_field.bind 'focus.chosen', this.input_focus
@search_field.bind 'cut.chosen', this.clipboard_event_checker
@search_field.bind 'paste.chosen', this.clipboard_event_checker

if @is_multiple
@search_choices.bind 'click.chosen', (evt) => this.choices_click(evt); return
@search_choices.bind 'click.chosen', this.choices_click
else
@container.bind 'click.chosen', (evt) -> evt.preventDefault(); return # gobble click of anchor

Expand Down Expand Up @@ -130,7 +130,7 @@ class Chosen extends AbstractChosen
else unless @is_multiple
@selected_item.bind 'focus.chosen', this.activate_field

container_mousedown: (evt) ->
container_mousedown: (evt) =>
return if @is_disabled

if evt and evt.type in ['mousedown', 'touchstart'] and not @results_showing
Expand All @@ -147,10 +147,10 @@ class Chosen extends AbstractChosen

this.activate_field()

container_mouseup: (evt) ->
container_mouseup: (evt) =>
this.results_reset(evt) if evt.target.nodeName is "ABBR" and not @is_disabled

search_results_mousewheel: (evt) ->
search_results_mousewheel: (evt) =>
delta = evt.originalEvent.deltaY or -evt.originalEvent.wheelDelta or evt.originalEvent.detail if evt.originalEvent
if delta?
evt.preventDefault()
Expand All @@ -160,7 +160,7 @@ class Chosen extends AbstractChosen
blur_test: ->
this.close_field() if not @active_field and @container.hasClass "chosen-container-active"

close_field: ->
close_field: =>
$(@container[0].ownerDocument).unbind 'click.chosen', this.test_active_click

@active_field = false
Expand Down Expand Up @@ -286,18 +286,18 @@ class Chosen extends AbstractChosen
@search_field.val("")
@search_field.removeClass "default"

search_results_mouseup: (evt) ->
search_results_mouseup: (evt) =>
target = if $(evt.target).hasClass "active-result" then $(evt.target) else $(evt.target).parents(".active-result").first()
if target.length
@result_highlight = target
this.result_select(evt)
@search_field.focus()

search_results_mouseover: (evt) ->
search_results_mouseover: (evt) =>
target = if $(evt.target).hasClass "active-result" then $(evt.target) else $(evt.target).parents(".active-result").first()
this.result_do_highlight( target ) if target

search_results_mouseout: (evt) ->
search_results_mouseout: (evt) =>
this.result_clear_highlight() if $(evt.target).hasClass "active-result" or $(evt.target).parents('.active-result').first()

choice_build: (item) ->
Expand Down
76 changes: 38 additions & 38 deletions coffee/chosen.proto.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -55,40 +55,40 @@ class @Chosen extends AbstractChosen
@form_field.fire("chosen:ready", {chosen: this})

register_observers: ->
@container.observe "touchstart", (evt) => this.container_mousedown(evt)
@container.observe "touchend", (evt) => this.container_mouseup(evt)

@container.observe "mousedown", (evt) => this.container_mousedown(evt)
@container.observe "mouseup", (evt) => this.container_mouseup(evt)
@container.observe "mouseenter", (evt) => this.mouse_enter(evt)
@container.observe "mouseleave", (evt) => this.mouse_leave(evt)

@search_results.observe "mouseup", (evt) => this.search_results_mouseup(evt)
@search_results.observe "mouseover", (evt) => this.search_results_mouseover(evt)
@search_results.observe "mouseout", (evt) => this.search_results_mouseout(evt)
@search_results.observe "mousewheel", (evt) => this.search_results_mousewheel(evt)
@search_results.observe "DOMMouseScroll", (evt) => this.search_results_mousewheel(evt)

@search_results.observe "touchstart", (evt) => this.search_results_touchstart(evt)
@search_results.observe "touchmove", (evt) => this.search_results_touchmove(evt)
@search_results.observe "touchend", (evt) => this.search_results_touchend(evt)

@form_field.observe "chosen:updated", (evt) => this.results_update_field(evt)
@form_field.observe "chosen:activate", this.activate_field
@form_field.observe "chosen:open", (evt) => this.container_mousedown(evt)
@form_field.observe "chosen:close", (evt) => this.close_field(evt)

@search_field.observe "blur", (evt) => this.input_blur(evt)
@search_field.observe "keyup", (evt) => this.keyup_checker(evt)
@search_field.observe "keydown", (evt) => this.keydown_checker(evt)
@search_field.observe "focus", (evt) => this.input_focus(evt)
@search_field.observe "cut", (evt) => this.clipboard_event_checker(evt)
@search_field.observe "paste", (evt) => this.clipboard_event_checker(evt)
@container.observe 'touchstart', this.container_mousedown
@container.observe 'touchend', this.container_mouseup

@container.observe 'mousedown', this.container_mousedown
@container.observe 'mouseup', this.container_mouseup
@container.observe 'mouseenter', this.mouse_enter
@container.observe 'mouseleave', this.mouse_leave

@search_results.observe 'mouseup', this.search_results_mouseup
@search_results.observe 'mouseover', this.search_results_mouseover
@search_results.observe 'mouseout', this.search_results_mouseout
@search_results.observe 'mousewheel', this.search_results_mousewheel
@search_results.observe 'DOMMouseScroll', this.search_results_mousewheel

@search_results.observe 'touchstart', this.search_results_touchstart
@search_results.observe 'touchmove', this.search_results_touchmove
@search_results.observe 'touchend', this.search_results_touchend

@form_field.observe 'chosen:updated', this.results_update_field
@form_field.observe 'chosen:activate', this.activate_field
@form_field.observe 'chosen:open', this.container_mousedown
@form_field.observe 'chosen:close', this.close_field

@search_field.observe 'blur', this.input_blur
@search_field.observe 'keyup', this.keyup_checker
@search_field.observe 'keydown', this.keydown_checker
@search_field.observe 'focus', this.input_focus
@search_field.observe 'cut', this.clipboard_event_checker
@search_field.observe 'paste', this.clipboard_event_checker

if @is_multiple
@search_choices.observe "click", (evt) => this.choices_click(evt)
@search_choices.observe 'click', this.choices_click
else
@container.observe "click", (evt) => evt.preventDefault() # gobble click of anchor
@container.observe 'click', (evt) => evt.preventDefault() # gobble click of anchor

destroy: ->
@container.ownerDocument.stopObserving 'click', this.test_active_click
Expand Down Expand Up @@ -132,7 +132,7 @@ class @Chosen extends AbstractChosen
else unless @is_multiple
@selected_item.observe 'focus', this.activate_field

container_mousedown: (evt) ->
container_mousedown: (evt) =>
return if @is_disabled

if evt and evt.type in ['mousedown', 'touchstart'] and not @results_showing
Expand All @@ -148,10 +148,10 @@ class @Chosen extends AbstractChosen

this.activate_field()

container_mouseup: (evt) ->
container_mouseup: (evt) =>
this.results_reset(evt) if evt.target.nodeName is "ABBR" and not @is_disabled

search_results_mousewheel: (evt) ->
search_results_mousewheel: (evt) =>
delta = evt.deltaY or -evt.wheelDelta or evt.detail
if delta?
evt.preventDefault()
Expand All @@ -161,7 +161,7 @@ class @Chosen extends AbstractChosen
blur_test: ->
this.close_field() if not @active_field and @container.hasClassName("chosen-container-active")

close_field: ->
close_field: =>
@container.ownerDocument.stopObserving 'click', this.test_active_click

@active_field = false
Expand Down Expand Up @@ -285,18 +285,18 @@ class @Chosen extends AbstractChosen
@search_field.value = ""
@search_field.removeClassName "default"

search_results_mouseup: (evt) ->
search_results_mouseup: (evt) =>
target = if evt.target.hasClassName("active-result") then evt.target else evt.target.up(".active-result")
if target
@result_highlight = target
this.result_select(evt)
@search_field.focus()

search_results_mouseover: (evt) ->
search_results_mouseover: (evt) =>
target = if evt.target.hasClassName("active-result") then evt.target else evt.target.up(".active-result")
this.result_do_highlight( target ) if target

search_results_mouseout: (evt) ->
search_results_mouseout: (evt) =>
this.result_clear_highlight() if evt.target.hasClassName('active-result') or evt.target.up('.active-result')

choice_build: (item) ->
Expand Down
26 changes: 13 additions & 13 deletions coffee/lib/abstract-chosen.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -53,16 +53,16 @@ class AbstractChosen
else
item.html

mouse_enter: -> @mouse_on_container = true
mouse_leave: -> @mouse_on_container = false
mouse_enter: => @mouse_on_container = true
mouse_leave: => @mouse_on_container = false

input_focus: ->
input_focus: =>
if @is_multiple
setTimeout (=> this.container_mousedown()), 50 unless @active_field
setTimeout (this.container_mousedown), 50 unless @active_field
else
@activate_field() unless @active_field

input_blur: ->
input_blur: =>
if not @mouse_on_container
@active_field = false
setTimeout (=> this.blur_test()), 100
Expand Down Expand Up @@ -134,7 +134,7 @@ class AbstractChosen

this.outerHTML(group_el)

results_update_field: ->
results_update_field: =>
this.set_default_text()
this.results_reset_cleanup() if not @is_multiple
this.result_clear_highlight()
Expand Down Expand Up @@ -239,11 +239,11 @@ class AbstractChosen

return @selected_option_count

choices_click: (evt) ->
choices_click: (evt) =>
evt.preventDefault()
this.results_show() unless @results_showing or @is_disabled

keydown_checker: (evt) ->
keydown_checker: (evt) =>
stroke = evt.which ? evt.keyCode
this.search_field_scale()

Expand Down Expand Up @@ -275,7 +275,7 @@ class AbstractChosen
this.keydown_arrow()
break

keyup_checker: (evt) ->
keyup_checker: (evt) =>
stroke = evt.which ? evt.keyCode
this.search_field_scale()

Expand All @@ -300,7 +300,7 @@ class AbstractChosen
this.results_search()
break

clipboard_event_checker: ->
clipboard_event_checker: =>
return if @is_disabled
setTimeout (=> this.results_search()), 50

Expand All @@ -314,15 +314,15 @@ class AbstractChosen

return true

search_results_touchstart: (evt) ->
search_results_touchstart: (evt) =>
@touch_started = true
this.search_results_mouseover(evt)

search_results_touchmove: (evt) ->
search_results_touchmove: (evt) =>
@touch_started = false
this.search_results_mouseout(evt)

search_results_touchend: (evt) ->
search_results_touchend: (evt) =>
this.search_results_mouseup(evt) if @touch_started

outerHTML: (element) ->
Expand Down

0 comments on commit 5dd350a

Please sign in to comment.