所以我有一个按钮,我希望能够用鼠标左右拖动(类似于滑块)。问题是,当我在页面加载和鼠标按下时打印出按钮的左偏移量(因此当用户单击按钮时),我得到不同的结果:
$(function() {
var sliderButton = $('.slider-button');
var initialLeft = sliderButton.offset().left;
alert(initialLeft); // This returns 810
var maximumLeft = initialLeft + 235;
sliderButton.mousedown(function(e) {
alert(e.pageX); // 576
sliderButton.bind('mousemove', function(e) {
var left = e.pageX;
if (left >= initialLeft && left <= maximumLeft) {
sliderButton.offset({left: left});
}
})
}).bind('mouseup', function() {
sliderButton.unbind('mousemove');
});
});
第一个警报返回:
810
第二个:
576
在 mousedown 事件中,光标与按钮位于同一位置,所以它不应该返回 810 吗?我不明白这种行为。