       included = if @filterer then @filterer(item, position) else true
       #console.debug '\tincluded?', included
 
-      # Get the view's top element
-      $viewEl = $(view.el)
+      # Get the view’s top element
+      $viewEl = view.$el
 
       if included
         # Make view transparent if animation is enabled
         $viewEl.css 'opacity', 0 if animationDuration
       else
-        # Hide the view if it's filtered
+        # Hide the view if it’s filtered
         $viewEl.css 'display', 'none'
 
-      $list = @$listElement || @$el
+      # Get the lsit and its children which are originate from item views
+      $list = @$list
       children = $list.children(@itemSelector)
 
       if position is 0

      @trigger 'visibilityChange', @visibleItems


    # Returns an instance of the view class
    # This has to be overridden by the class which inherits from CollectionView

    getView: ->
      throw new Error 'CollectionView#getView must be overridden'


    # Render the view for an item

    renderAndInsertItem: (item, index) ->

      @renderAllItems()


    # Main render method (should be called only once)

    render: ->
      super
      #console.debug 'CollectionView#render', @, @collection

      # Set the $list property
      @$list = if @listSelector then @$(@listSelector) else @$el

      @initFallback()


    #
    # Fallback message when the collection is empty
    #

    # Initialize the fallback

    initFallback: ->
      return unless @fallbackSelector

      # Set the $fallback property
      @$fallback = @$(@fallbackSelector)

      # The collection has to be a deferred in order that
      # the fallback can be shown properly
      f = 'function'
      isDeferred = typeof @collection.done is f and typeof @collection.state is f
      return unless isDeferred

      # Listen for visible items changes
      @bind 'visibilityChange', @showHideFallback

      # Register a done handler on the collection
      # TODO: How to dispose this reference?
      @collection.done @showHideFallback

    # Show or hide the fallback when the visible items change

    showHideFallback: =>
      console.debug 'CollectionView#showHideFallback', @, @visibleItems, @collection
      # Show fallback message if no item is visible and
      # the collection Deferred has been resolved
      empty = @visibleItems.length is 0 and @collection.state() is 'resolved'
      @$fallback.css 'display', if empty then 'block' else 'none'


    # Render and insert all items
    # Accepts the options `shuffle` (Boolean) and `limit` (Number)

    renderAllItems: (options = {}) =>

