Я думаю, что ваша проблема - это _ перед заполнением, это не сработает, потому что это недопустимое свойство. JQuery не может обрабатывать IE хаки, как это. Если вы хотите анимировать только когда это IE, вы должны использовать что-то вроде:
if($.brower.msie && $.browser.version == 7.0){}
Также вы передаете второй параметр в качестве объекта, используйте вместо этого:
.animate({}, 320, function(){});
Если вы не хотите устанавливать свойство _padding
, которое является переменной, вы должны сгенерировать объект, подобный:
var _direction = $(this).data('direction'),
_padding = (_direction == 'prev') ? 'margin-left' : 'margin-right'; //set css
var animationData = {opacity: 0};
animationData[_padding] = $(this).width();
// And within animate
.animate(animationData, 320, function(){})