                     _reset()
                 return
             )
-            element.bind('mousedown', _startDragging)
+            element.bind('mousedown touchstart', _startDragging)
         return $iReactable('iSlidable', aProcessEvent)
     ])
    ###
    start: (e, view, direction) ->
        @isDragging = true
        { pageX, pageY } = e
        @_direction = direction
        @_dragStartX = pageX
        @_dragStartY = pageY
        @_draggingTarget = view
        @_$window.on('mousemove', @_drag)
        @_$window.on('mouseup', @_stop)
        @_$body.addClass("dragging-#{ @_direction }")

    _drag: (e) =>
        { pageX, pageY } = e
        ui = @_assembleUI(pageX, pageY)
        @_draggingTarget.onDrag?(ui)

    _stop: (e) =>
        @_$window.off('mousemove', @_drag)
        @_$window.off('mouseup', @_stop)
        if @_draggingTarget?
            { pageX, pageY } = e
            ui = @_assembleUI(pageX, pageY)
            @_draggingTarget.stopDragging?(ui)
            @_reset()

                return

            _onDrag = ({ x_start, y_start, x_delta, y_delta }) ->
                options.range.mulStep = Math.floor(x_delta / 15)
                value = nextValueFn(ngModelCtrl.$modelValue, options, false)
                _updateCursor(value)
                scope.$apply( ()->
