         "add": @onAddCollection
         "remove": @onRemoveCollection
       @currentActiveModel = null
+      @isMenuOpen = false
       @views = {}
+      @__onBackdropClick = (e)=> @onBackdropClick(e)
+
+    onShow:->
+      $(window).on "click", @__onBackdropClick
+
+    onClose:->
+      $(window).off "click", @__onBackdropClick
 
     bindToInput: (@$input)->
 

  ], (Backbone, MixinBackbone)->
    Holder Backbone, MixinBackbone
else
  window.DropDown = Holder(Backbone, MixinBackbone)
      @collection.remove @collection.models
      @collection.add data

    onClick: (e)->
      if @isMenuOpen
        @$el.removeClass @OPEN_CLASS
        @isMenuOpen = false
      else
        @$el.addClass @OPEN_CLASS
        @isMenuOpen = true

    onBackdropClick: (e)->
      isListClick = $(e.target).parents(".#{@className}")[0] is @el
      return if isListClick or not @isMenuOpen
      @$el.removeClass @OPEN_CLASS
      @isMenuOpen = false

    onAddCollection: (model)->
      @views[model.cid] = itemView = new @itemView {model}
