The reason it instantly goes to the left is because you have not set the left position of the element, as a result jQuery tries to go from the computed left:auto
to left:0
To get around this you could set the left position before performing the animation:
var element = $('#parent li a:eq(0)');
var left = element.position().left;
element.css({ left: left });
element.delay(100).animate({
left: "0px"
}, 'slow');
Or you could animate using the right position of the element:
$('#parent a').bind('click', function(e) {
e.preventDefault();
var element = $('#parent li a:eq(0)');
element.delay(100).animate({
right: $('#parent').width() - element.outerWidth()
}, 'slow');
});