     view = @
 
     didImageLoad = (e) ->
-      img = this
-      img.removeEventListener('load', didImageLoad, false)
+      $img = jQuery(this)
+      $img.off('load.image-view', didImageLoad)
 
       #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))
+      loaded = $img.attr('src').substr(-(current.length))
       return unless loaded is current
 
       set view, 'loading', false #exit loading state

    @event willDestroyElement
  ###
  willDestroyElement: ->
    img = get @, 'element'
    didImageLoad = get @, 'didImageLoad'
    img.removeEventListener('load', didImageLoad, false)
    @_super()

  ###
  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'
    @

  ###
