       if content?
         $trigger.data @attr('content'), content
 
-    # `_bindTrigger` links each trigger to the tip for: 1) possible appearance
+    # `_bindTriggers` links each trigger to the tip for: 1) possible appearance
     # changes during mouseenter, mouseleave (uses special events) and 2)
     # following on mousemove only if `doFollow` is on. Also note for our
     # `onMouseMove` handler, it's throttled by `requestAnimationFrame` when
-    # available, otherwise manually at hopefully 60fps. It does direct binding
-    # by default, can also do delegation (preferred) if `$trigger` isn't given
-    # but `$triggerContext` is.
-    _bindTrigger: ($trigger) ->
-      $bindTarget = $trigger
-      if not $bindTarget?
-        if @$context
-          $bindTarget = @$context
-          selector = ".#{@classNames.trigger}"
-        else
-          @debugLog 'invalid argument(s)'
-          return no
-      selector ?= null
+    # available, otherwise manually at hopefully 60fps.
+    _bindTriggers: ->
+      selector = ".#{@classNames.trigger}"
       # Base bindings.
-      $bindTarget.on [
+      @$context.on [
           @evt('truemouseenter')
           @evt('truemouseleave')
         ].join(' '),

      # - `triggerContent` can be the name of the trigger element's attribute or a
      #   function that provides custom content when given the trigger element.
      triggerContent: null
      # - `shouldDelegate` is by default and encouraged to be on for improving
      #   event handling performance.
      shouldDelegate: on
      # - `ms.duration` are the durations of sleep and wake animations.
      # - `ms.delay` are the delays before sleeping and waking.
      ms:

              @_onTriggerMouseMove event
        else 
          onMouseMove = _.throttle @_onTriggerMouseMove, 16
        @$context.on 'mousemove', selector, onMouseMove

    # `_bind` adds event handlers to `$tip`, mostly so state can be updated such
    # that the handlers on `_$currentTrigger` make an exception. The desired
