Вы пытаетесь сослаться на переменную внутри строки. Это не имеет смысла.
Вы на самом деле имели в виду:
$("img:eq(" + indexImg + ")").show();
Но более эффективная реализация:
$(this).prev().show();
Наиболее эффективная реализация без побочных эффектов:
$("#rightShift").click(function(){
var $images = $("img"); // <-- Reference to all images
$images.hide();
//var count = $images.length; //<-- Unused variable, delete it?
$images.each(function(i) {
$(this).prev().show();
});
});
$("#leftShift").click(function() {
var $images = $("img");
$images.hide();
$images.last().prependTo("img"); // OR: $images.before($images.last());
$images.show();
});