             ui.sender.sortable('cancel')
         })
       group_rows = @formEditorEl.find('.group__rows')
-      group_rows.off 'mouseenter', '> .survey__row', @_preventSortableIfGroupTooSmall
-      group_rows.off 'mouseleave', '> .survey__row', @_preventSortableIfGroupTooSmall
-      group_rows.on 'mouseenter', '> .survey__row', @_preventSortableIfGroupTooSmall
-      group_rows.on 'mouseleave', '> .survey__row', @_preventSortableIfGroupTooSmall
-      group_rows.sortable({
-          cancel: 'button, .btn--addrow, .well, ul.list-view, li.editor-message, .editableform, .row-extras, .js-cancel-sort, .js-cancel-group-sort'
+      group_rows.each (index) ->
+        $(@).sortable({
+          cancel: 'button, .btn--addrow, .well, ul.list-view, li.editor-message, .editableform, .row-extras, .js-cancel-sort, .js-cancel-group-sort' + index
           cursor: "move"
           distance: 5
           items: "> li"

          activate: sortable_activate_deactivate
          deactivate: sortable_activate_deactivate
        })
      return
    _preventSortableIfGroupTooSmall: (evt)->
      $ect = $(evt.currentTarget)
      if evt.type is 'mouseenter' && $ect.siblings('.survey__row').length is 0
        $ect.addClass('js-cancel-group-sort')
        evt.stopPropagation()
      else
        $ect.removeClass('js-cancel-group-sort')
        evt.stopPropagation()

    validateSurvey: ()->
      true


      sortable_stop = (evt, ui)=>
        $(ui.item).trigger('survey__row-sortablestop')
        @formEditorEl.find('.group__rows .survey__row').each @_preventSortableIfGroupTooSmall

      @formEditorEl.sortable({
          # PM: commented out axis, because it's better if cards move horizontally and vertically
