Как-то так должно работать:
var leftLimit = 350;
var bLimitReached = false;
$('#image').draggable ( {
drag: function (event, ui) {
var jThis = $(this);
if ( ui.offset.left > leftLimit ) {
bLimitReached = true;
jThis.trigger('mouseup');
jThis.addClass ('dragLimitreached ');
}
else
jThis.removeClass ('dragLimitreached ');
},
stop: function (event, ui) {
var jThis = $(event.originalEvent.target);
if (bLimitReached) {
jThis.offset ( {left: leftLimit} );
bLimitReached = false;
}
setTimeout (function() {
jThis.removeClass ('dragLimitreached');
}, 2000 );
}
} );
Обратите внимание, что я добавил небольшую визуальную обратную связь.
Смотрите это в действии на jsFiddle.
Обратите внимание, что пользователю придется отпустить кнопку мыши, чтобы начать еще одно перетаскивание (должно быть несколько интуитивно понятно).