     if @isOpen() then @hide(cb) else @show(cb)
     this
 
+  dropdownContent: (dropdownContent, cb) ->
+    if arguments.length
+      setupDropdown = dropdownContentToSetupDropdown dropdownContent
+      @_.dropdownContent = dropdownContent
+      @_ = hx.shallowMerge @_, {
+        setupDropdown,
+        dropdownContent
+      }
+      @_.render cb
+    else
+      @_.dropdownContent
+
   show: (cb) ->
+
+    if not @_.visible
+      @_.visible = true
+      @render cb
+    this
+
+  render: (cb) ->
+
     _ = @_
-
-    if not _.visible
-      _.visible = true
+    if _.visible
 
       _.dropdown = hx.select(hx._.dropdown.attachToSelector).append('div').attr('class', 'hx-dropdown')
 


    selection = hx.select(selector)

    @_ = {
      setupDropdown: setupDropdown,
      clickDetector: clickDetector,
      alignments: alignments,
      onclick: onclick,

hx._.dropdown = {
  attachToSelector: 'body',
  calculateDropdownPosition: calculateDropdownPosition
}
