JQuery получить положение половины одного дел - PullRequest
1 голос
/ 18 февраля 2012

Я столкнулся с некоторыми основными проблемами в jquery, но я не могу понять это.

Вот код: http://jsfiddle.net/pdQsY/

Как получить положение половины деления (при наведении курсора мыши влево на 200 пикселей от div, цвет выходного шрифта #ff0. При наведении курсора вправо на 200 пикселов в div, цвет вывода шрифта # 336)

Я использую e.pageX - div.offsetLeft, но это эхо NaN, спасибо.

1 Ответ

4 голосов
/ 18 февраля 2012

Используйте .offset().left вместо несуществующего свойства jQuery offsetLeft.

Из соображений эффективности следует кэшировать переменные $("#main") и $('p').Вы вызываете это дважды в вашем mousemove обработчике.Обработчик mousemove срабатывает очень часто, поэтому в итоге вы легко можете вызвать $("#main") более тысячи раз.

Демонстрация: http://jsfiddle.net/pdQsY/2/

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();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...