我在jquery中遇到了一些基本问题,但我无法理解。
以下是代码:http://jsfiddle.net/pdQsY/
如何获得div的一半位置。(鼠标移开div的200px,输出字体颜色#ff0
。鼠标右移200px的div,输出字体颜色#336)
我使用e.pageX - div.offsetLeft
,但这个回复NaN
,谢谢。
答案 0 :(得分:4)
使用.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();
});