1

所以我有一个按钮,我希望能够用鼠标左右拖动(类似于滑块)。问题是,当我在页面加载和鼠标按下时打印出按钮的左偏移量(因此当用户单击按钮时),我得到不同的结果:

$(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 吗?我不明白这种行为。

4

0 回答 0