     @event willDestroyElement
   ###
   willDestroyElement: ->
-    img = get @, 'element'
+    $img = this.$()
     didImageLoad = get @, 'didImageLoad'
-    img.removeEventListener('load', didImageLoad, false)
+    $img.off('load.image-view', didImageLoad)
     @_super()

    view = @

    didImageLoad = (e) ->
      img = this
      img.removeEventListener('load', didImageLoad, false)

      #Do nothing if view instance is destroyed
      return if get(view, 'isDestroyed')

      #Do nothing if src has changed again since loading began
      current = get(view, 'src') ? ''
      loaded = img.src.substr(-(current.length))
      return unless loaded is current

      set view, 'loading', false #exit loading state

  ###
  updateSrc: ->
    view = @
    $img = view.$()
    src = get(@, 'src')
    didImageLoad = get @, 'didImageLoad'

    $img.removeAttr 'src'

    # Do nothing if the src property is empty
    if jQuery.trim(src) is ''
      return @

    set view, 'loading', true #enter loading state

    $img.on('load.image-view', didImageLoad)
    $img.attr('src', src)
    didImageLoad.call($img) if $img.prop 'complete'
    @

  ###
