Используйте .offset().left
вместо несуществующего свойства jQuery offsetLeft
.
Из соображений эффективности следует кэшировать переменные $("#main")
и $('p')
.Вы вызываете это дважды в вашем mousemove
обработчике.Обработчик mousemove
срабатывает очень часто, поэтому в итоге вы легко можете вызвать $("#main")
более тысячи раз.
var $main = $("#main");
var $p = $('p');
$main.mousemove(function(e) {
var mouseX = e.pageX;
var offsetLeft = $main.offset().left;
if(mouseX < 200 + offsetLeft){
$p.css('color','#ff0');
} else {
$p.css('color','#336');
}
$p.html(mouseX - offsetLeft);
e.preventDefault();
});