Думаю, я заметил проблему:
<!--$('#log2').html(e.pageX +', '+ e.pageY);-->
Это тег комментария HTML, внутри javascript он сломается, поэтому используйте // вместо него - т.е.:
//$('#log2').html(e.pageX +', '+ e.pageY);
После исправления вы можете обнаружить, что ваш скрипт работает.
Если это не помогло, пожалуйста, опубликуйте скрипку (http://jsfiddle.net), показывающую неправильное поведение и прокомментируйте, как именно должен вести себя.
Надеюсь, это поможет
EDIT:
Без обид, но ваш код довольно ужасен.
Попробуйте это (урезано и исправлено):
$('body').mousemove(function(e){
var radian = Math.atan2(e.pageY, e.pageX);
var grade = radian/(Math.PI/360);
$('#log2').html('grade:'+grade+' :: radian:'+radian);
$('#img').animate({rotate: grade});
});
Чтобы назвать несколько, 'animateMe
' не является функцией, 'animate
' является. Там была вторая строка $(document).mousemove(function(){..});
, у которой не было закрывающей скобки - неудивительно, что это не сработало.
И удалите все остальные теги сценариев со своей страницы, некоторые из них привязывают события перемещения мыши, когда вы уже связали их - либо удалите их, либо сверните их в один обработчик.
Пример скрипта:
http://jsfiddle.net/uRpag/1/
2-е редактирование:
Метод rotate вашего плагина должен иметь 'deg' в свойстве.
Попробуйте этот код:
$('#img').animate({rotate: grade+'deg'});
вместо
$('#img').animate({rotate: grade});
Последнее редактирование:
Последнее, что вам нужно было сделать, - это .stop()
анимация при повторном перемещении мыши - в противном случае сотни анимационных функций встали бы в очередь при перемещении мыши более чем на пару пикселей.
$('#img').stop(true, true).animate({rotate: grade+'deg'});
Работа сделана:)
http://jsfiddle.net/uRpag/4/