Countable.js
function (targets, callback, options) {
      if (!validateArguments(targets, callback)) return

      if (!Array.isArray(targets)) {
          targets = [ targets ]
      }

      each.call(targets, function (e) {
          callback.call(e, count(e, options))
      })

      return this
    }
function (targets, callback, options) {
      if (!validateArguments(targets, callback)) return

      if (!Array.isArray(targets)) {
          targets = [ targets ]
      }

      each.call(targets, function (e) {
          callback.call(e, count(e, options))
      })

      return this
    }
function ( targets , callback , options ) { if ( ! validateArguments ( targets , callback ) ) return if ( ! Array . isArray ( targets ) ) { targets = [ targets ] } each . call ( targets , function ( e ) { callback . call ( e , count ( e , options ) ) } ) return this }
The `count` method works mostly like the `live` method, but no events are
bound, the functionality is only executed once.

@param   {Nodes|String}  targets   All elements that should be counted.

@param   {Function}      callback   The callback to fire whenever the
element's value changes. The callback
is called with the relevant element
bound to `this` and the counted values
as the single parameter.

@param   {Object}        [options]  An object to modify Countable's
behaviour.

@return  {Object}    Returns the Countable object to allow for chaining.
The count method works mostly like the live method but no events are bound the functionality is only executed once .